1.Math.Round 保留几位小数点,采用的是国际通行的是 Banker 舍入法即四舍六入五取偶(四舍六入五考虑,五后非零就进一,五后皆零看奇偶,五前为偶应舍去,五前为奇要进一。)。
2.String类的IndexOf 、LastIndexOf、String.Substring
(1)String.IndexOf 方法 (Char, Int32, Int32)
报告指定字符在此实例中的第一个匹配项的索引。搜索从指定字符位置开始,并检查指定数量的字符位置。
String.IndexOf(value, startIndex, count)
参数
value:要查找的 Unicode 字符。
startIndex:搜索起始位置。
count:要检查的字符位置数。
返回值(Int32):
如果找到该字符,则为 value 的索引位置;否则如果未找到,则为 -1。
(2)LastIndexOf方法
报告指定的 Unicode 字符或 String 在此实例中的最后一个匹配项的索引位置。
(3)String.Substring方法
从此实例检索子字符串。
名称 | 说明 |
String.Substring (Int32) | 从此实例检索子字符串。子字符串从指定的字符位置开始。 |
String.Substring (Int32, Int32) | 从此实例检索子字符串。子字符串从指定的字符位置开始且具有指定的长度。 |
示例:
string str = "深圳市盈基实业有限公司国际通邓事文*深圳市盈基实业有限公司国际通邓事文";
Label1.Text = str.Substring(11);//返回 “国际通邓事文*深圳市盈基实业有限公司国际通邓事文”
Label1.Text = str.Substring(11,7);//返回 “国际通邓事文*”
总结一下:
IndexOf、LastIndexOf都是返回一个位置,是个整数值;找不到都返回-1;
IndexOf是从左向右查,LastIndexOf是从右向左查,不管是IndexOf还是LastIndexOf,索引序列都是从左到右的(起始值是0)
Substring是字符串截取,返回值是一个截取后的字符串。
3.String.Trim() 从当前String对象移除所有前导空白字符和尾部空白字符。
String.Trim(Char[]) 从当前String对象移除数组中指定的一组字符的所有前导匹配项和尾部匹配项。
String.Join 连接指定数组的元素或集合的成员,在每个元素或成员之间使用指定的分隔符。
String.Split 返回的字符串数组包含此实例中的字符串(由指定字符串或Unicode字符数组的元素分割)。
String.ToLower 返回此字符串转换为小写形式的副本。
String.ToCharArray 将字符串转换成字符数组
将一个char数组转换成字符串 new string(char 数组名)
4.Array.Reverse 反转整个一维Array中元素的顺序。
5.Parse就是把String转换成int,char,double....等,也就是*.Parse(string) 括号中的一定要是string。
Convert可以提供多种类型的转换,也就是Convert.*()括号中可以为很多种类型(包括string)。
int.TryParse 与 int.Parse 又较为类似,但它不会产生异常,转换成功返回 true,转换失败返回 false。最后一个参数为输出值,如果转换失败,输出值为 0。
eg. int.Parse():表示将数字内容的字符串转为int类型。
如果字符串为空,则抛出ArgumentNullException异常;
如果字符串内容不是数字,则抛出FormatException异常;
如果字符串内容所表示数字超出int类型可表示的范围,则抛出OverflowException异常;
6.MessageBox类---显示可包含文本、按钮和符号(通知并指示用户)的消息框。(具体见MSDN)
Show(String, String, MessageBoxButtons, MessageBoxIcon):显示具有指定文本、标题、按钮和图标的消息框。
函数描述:
public static DialogResult Show(
string text,
string caption,
MessageBoxButtons buttons,
MessageBoxIcon icon)
说明:
text
类型:System.String
要在消息框中显示的文本。
caption
类型:System.String
要在消息框的标题栏中显示的文本。
buttons
类型:System.Windows.Forms.MessageBoxButtons
MessageBoxButtons 值之一,可指定在消息框中显示哪些按钮。 其中MessageBoxButtons值见下表:
成员名称
|
说明
|
AbortRetryIgnore
|
消息框包含“中止”、“重试”和“忽略”按钮。
|
OK
|
消息框包含“确定”按钮。
|
OKCancel
|
消息框包含“确定”和“取消”按钮
|
RetryCancel
|
消息框包含“重试”和“取消”按钮。
|
YesNo
|
消息框包含“是”和“否”按钮。
|
YesNoCancel
|
消息框包含“是”、“否”和“取消”按钮。
|
icon
类型:System.Windows.Forms.MessageBoxIcon
MessageBoxIcon 值之一,它指定在消息框中显示哪个图标。
成员名称
|
说明
|
Asterisk
|
该消息框包含一个符号,该符号是由一个圆圈及其中的小写字母 i 组成的。
|
Error
|
该消息框包含一个符号,该符号是由一个红色背景的圆圈及其中的白色 X 组成的。
|
Exclamation
|
该消息框包含一个符号,该符号是由一个黄色背景的三角形及其中的一个感叹号组
|
Hand
|
该消息框包含一个符号,该符号是由一个红色背景的圆圈及其中的白色 X 组成的。
|
Information
|
该消息框包含一个符号,该符号是由一个圆圈及其中的小写字母 i 组成的。
|
None
|
消息框未包含符号。
|
Question
|
该消息框包含一个符号,该符号是由一个圆圈和其中的一个问号组成的。 不再建议使 |
Stop
|
该消息框包含一个符号,该符号是由一个红色背景的圆圈及其中的白色 X 组成的。
|
Warning
|
该消息框包含一个符号,该符号是由一个黄色背景的三角形及其中的一个感叹号组
|
返回值
类型:System.Windows.Forms.DialogResult
DialogResult 值之一。
7. 字符串前加@:强制不转义,在字符串里面转义字符无效。
8. Var关键字:指示编译器根据初始化变量的表达式来推断变量的类型。
9. as操作符
取一个对象和一个类型作为其左边和右边的操作数,“运行时”尝试将对象转换成指定的类型。如果转换成功,就返回转换成功的结果。如果转换失败,as表达式的求值结果就是null。
10. #region 和 #endregion
表示一块区域,这样在 Visual Studio 中可以将这块区域的代码折叠起来,便于查看。
11.String.IsNullOrEmpty方法
指示指定的字符串是null还是Empty字符串(“”),如果是,则为true。
12.int?的变量可赋null而int不可以。
13.if (Control.ModifierKeys == Keys.Control) // 判断是否按下Ctrl键
14.ToString("X2") 为C#中的字符串格式控制符
X为 十六进制
2为 每次都是两位数
比如 0x0A ,若没有2,就只会输出0xA
15.File类---静态类
提供用于创建、复制、删除、移动和打开单一文件的静态方法,并协助创建FileStream 对象。
(1)File.ReadAllLines("path",Encoding.Default);//读取所有行,返回string[]
(2)File.ReadAllText("path",Encoding.Default);//读取所有文本,返回string
(3)File.ReadAllBytes("path");//读取文件,返回byte[],把文件作为二进制来处理
(4)File.WriteAllLines("path",new string[4],Encoding.Default);//将string[]按行写入文件
(5)File.WriteAllText("path",“string”);//将字符串全部写入文件
(6)File.AppendAllText();//将string追加到文件
(7)File.Exists(string) ;//确定指定的文件是否存在
(8)File.Delete(string) ;//删除指定的文件---即便文件不存在也不会报异常
(9)File.Copy("source","targetFileName",true) ;//文件拷贝,true表示当文件存在时覆盖,如果不加true,则文件存在报异常。
(10)File.Move("source","target");//移动(剪切),文件的剪切是可以跨磁盘
(11)File.Create("path");//创建文件
FileInfo // 文件类,用来描述一个文件对象。获取指定目录下的所有文件时,返回一个FileInfo数组。
产生乱码的原因(只有文本文件才会乱码):文本文件存储时采用的编码,与读取时采用的编码不一致,就会造成乱码问题。解决:采用统一的编码就OK。
文本文件编码,文本文件有不同的存储方式,将字符串以什么样的形式保存为二进制,这个就是编码,UTF-8、ASCII、Unicode等,如果出现乱码一般就是编码的问题,文本文件相关的函数一般都有一个Encoding类型的参数,取得编码的方法:Encoding.Default(操作系统编码)、Encoding.UTF8、Encoding.GetEncoding("GBK")。
文本编码(码表)
ASCII:英文码表,每个字符占1个字节。(正数)
GB2312:兼容ASCII,包含中文。每个英文占一个字节(正数)。中文占两个字节(负数)。
GBK:简体中文,兼容gb2312,包含更多汉字。英文占1个字节(正数),中文占两个字节(1个负数,1个可正可负) GB18030
Big5:繁体中文
Unicode:国际码表,中文英文都占两个字节。
UTF-8:国际码表,英文占1个字节,中文占3个字节。
输出Encoding.GetEncodings(),所有编码
16.Directory类---静态类,操作目录(文件夹)
DirectoryInfo // 文件夹的一个“类”,用来描述一个文件夹对象(获取指定目录下的所有目录时返回一个DirectoryInfo数组。)
Path //对文件或目录的路径进行操作的静态类
Stream// 文件流,抽象类
FileStream // 文件流
StreamReader // 快速读取文本文件
StreamWriter // 快速写入文本文件
void Delete(string path, bool recursive) 删除目录,recursive表示是否递归删除,如果recursive为false则只能删除空目录
bool Exists(string path) 判断目录是否存在
string[] GetDirectories(string path) 得到一个目录下的子目录(直接子目录)
string[] GetDirectories(string path, string searchPattern, SearchOption searchOption) 通配符查找目录下的子目录,可以搜索到隐藏文件
static string[] GetFiles(string path) 得到一个目录下的子文件(直接子文件)
string[] GetFiles(string path, string searchPattern, SearchOption searchOption) 通配符查到目录下的文件
DirectoryInfo GetParent(string path) 得到目录的父目录
Directory.move(string path1, string path2) 移动、剪切。只能在同一个磁盘中。目录没有Copy方法。可以使用move()方法实现重命名
Directory.CreateDirectory(string) 创建目录
Directory.Delete(string) 删除目录(如果给定的目录不存在则报异常;直接删除目录的时候,如果目录不为空,则报异常)
17.Path类---静态类
获取文件名 Path.GetFileName(string)
获取文件后缀 Path.GetExtension(string)
获取该路径的目录部分 Path.GetDirectoryName(string)
修改文件后缀 string ChangeExtension(string path, string extension) ----修改支持字符串层面的,没有真的给文件改名
将两个路径合成一个路径 string Combine(string path1, string path2) ---比用加号,可以方便解决不加斜线的问题,自动处理路径分隔符的问题
得到去除扩展名的文件名 string GetFileNameWithoutExension(string path)
得到文件的全路径 string GetFullPath(string path) ---可以根据相对路径获取绝对路径
得到一个唯一的临时文件名 string GetTempFileName()
得到临时文件夹的路径 string GetTempPath()
18.字符串转换成byte数组 byte[] bytes=System.Text.Encoding.UTF8.GetBytes(字符串);
byte数组转换成字符串 string newmsg=System.Text.Encoding.UTF8.GetString(bytes);