.Net常用类库

一、String成员方法
  1,bool Contains(string str)决断字符串对象是或不是带有给定的内容

  2,bool StartsWith(String
str):决断字符串对象是或不是以给定的字符串早先。

  3,bool EndsWith(String str):判定字符串对象是还是不是以给定的字符串结束。

    案例:推断是还是不是是网站:以

    案例:剖断顾客输入的邮件是还是不是是QQ邮箱,客商输入的客商名是或不是带有“毛ze东”等敏感词

  4,int Length获取字符串的长短属性

    str.Length

  5,char ch = str[3];

  6,int indexOf   //重返钦点字符在此字符串中率先次面世的目录

  7,int indexOf(string str)
  //再次来到钦赐字符串在此字符串中率先次出现的目录

  8,LastIndexOf  //最后一遍面世的职责

  9,String Substring(int
start)  //截取字符串,重回从钦赐地方上马截取后的字符串

  10,String substring(int start,int
length)  //截取字符串,重临从钦定地点上马截取内定长度length的字符串

  11,String ToLower()  //把字符串变成小写;

  12,String ToUpper()  //把字符串造成大写

  13,String Replace(char oldChar,char
newChar)  //用新的字符去替换钦定的旧的字符;

  14,String Replace(string lodStr,string
newStr)  //用新的字符串去替换钦定的旧的字符串

  15,String trim()  //去除字符串两端的空格,

  16,Trim(params char[] trimChars)  //去掉两端的给定的字符

  17,TrimEnd和TrimStrat  //去掉开头的和最终的空格

  18,String是不可变的,因而地点的操作都以生成新的字符串对象,要用重临值去接受新的字符串。

  19,String[] Split()  //重载方法比较多,字符串根据分隔符切割。

  案例:把字符串用“,”分割

二、String静态方法

  1,bool IsNullOrEmpty(string
value)  //决断字符串是或不是为null或许是空字符串

  2,bool Euqals(string a,string
b,StringComparison.OrdinallgnoreCase)  //对多少个字符串进行不区分轻重缓急写相比

  3,string Join(string separator,params string[]
value)  //把一个数组用分隔符separator连接为一个字符串

三、StringBuilder

  因为字符串的不可变,在字符串举行再三再四的时候会发生新的字符串对象,形成浪费  

  1,Append();
    StringBuilder sb = new StringBuilder();
    sb.Append;
    sb.Append.Append;//因为Append方法把this对象回来了,所以可以链式编制程序

    最后动用String s = sb.ToString(),二遍性生成拼接结果字符串就能够

  2,AppendLine();

    将暗许的行终止符追加到当前 System.Text.StringBuilder
对象的末尾。

四、可空的int

  int是值类型,无法为null。在C#中得以用int?表示“可空的int”

  注意类型的转移:

    int? i = 5;
    if
    {
      int i1 = i;//供给开展强转
    }
  也得以经过i.HasValue,推断是都为null、i.value获取i的值

  通过IL可见,int?其实被编写翻译器翻译为Nullable<int>类型

五、日期类型

  DateTime类表示时间数据类型。属于结构体,因而是值类型

  DateTime.Now  当前时光,

  DateTime.Today  当今日子

  能够经过Year、Month、Hour的性情得到日期的年、月、小时等片段;
  也得以用构造函数依照给定的光阴创建多少个指标

六、十分的定义
  非常发生在前后相继发生的不健康情状下。分外以二个非常类对象的款式抛出,非凡类描述至极新闻、产生的职位等。

  十分的根类为Exception。极度类一般都无冕自Excrption

七、万分的捕捉

  try
  {
    String s = null;
    s.ToString();
  }
  catch(NullReferenceException ex)
  {
    Console.WriteLine(“为空”+ex.Message);
  }

  ex便是发出极度的非常类对象,变量名只要不争辩就随便

  在极度管理中,一旦try里面有标题了。放弃try代码块中之后的代码,直接跳到catch里面试行。

  如若try代码后还会有代码,则管理完catch后还或者会继续推行

八、八个要命的管理
  try
  {
    int a = 10;
    int b = 0;
    Console.WriteLine;
    int[] arr = {1,2,3};
    Console.WriteLine;
  }
  catch(DivideByZeroException ae)
  {
    Console.WriteLine;
  }
  catch(IndexOutOfRangeException ae)
  {
    Console.WriteLine;
  }

  能够catch住父类相当,那样就可以吸引全部子类相当了,可是显明不提议如此做,不要没理由的catch非凡

九、不要吃那多少个
  catch(Exception ex)
  {
    //空代码
  }

  不要只是把格外catch住什么都不做或然只是打字与印刷一下,那不是常规的“极度管理”

  不明白怎么处理就不用catch,出错比“把错误藏起来”好。那样认为“不会出错了”,其实是把非常“吃掉了”,会让程序陷入混乱状态

  要成立的拍卖特别

十、finally

  try
  {
    //有异常的大希望有题指标代码
  }
  catch(非常类型 万分变量)
  {
    //管理格局
  }
  finally
  {
    //无论是不是出现相当,都要实行的代码
  }

  finally中貌似进行财富的回收等。

十一、File文件类

  File是静态类,其首要的静态方法有:

  1,void Delete(string path)  删除文件

  2,bool Exists(string path)  判别文件是不是留存

  3,string[] ReadAllLines(string
path)  将文件文件中的内容读取到string数组中

  4,string ReadAllText(string path)  将文件文件读取为贰个字符串

  5,void WriteAllLines(string path,string[]
contents)  将string[]写入到文件中

  6,void WriteAllText(string path,string
contents)  将字符串contents写入到文件path中

  7,AppendAllText  向文件中附加内容

  8,Copy  复制文件

  9,Move  移动文件

十二、Directory文件夹类,为static类

  1,CreateDirectory(string path)创立文件夹全路径

  2,void Delete(string path,bool recursive)
    删除文件夹path,recursive表示是不是也删除子文件及子文件夹。
    假使文件夹不为空,recursive=false,则抛非凡

    示例代码:Directory.Delete(@”全路径”, true);

  3,boolExists(string path)  决断文件夹是或不是存在

  4,Directory.EnumerateFiles();  再次来到钦定路径中的文件名的可枚举集结。

  5,
Directory.EnumerateDirectories();  重回钦命路径中与追寻情势相配的目录名称的可枚举会集。

十三、流Stream

  1,File类提供了读写文本文件的办法,不过对于大文件无法用它提供的主意,太占内部存款和储蓄器,须要一种“流式管理”的措施

  2,.Net将IO操作简化成流模型Stream,是抽象类,

    互联网、文件、加密稍等都以见仁见智的子类,

    最常用的子类是FileStream、MemoryStream等

  3,使用Stream的时候即使能够:
    FileStream fs = new FileStream();
    但是,Stream fs = new FileStream();更好!

    在行使的变量类型提供的操作能满意的前提下,尽大概的用父类、接口评释变量,,

  4,FileStream写入文件

    FileStream fs = new FileStream(@”D:\1.txt”,
FileMode.Create);//创建贰个文本文件
    byte[] bytes =
Encoding.Default.GetBytes;//将“你好如鹏网”举办编码成byte数组对象
    fs.Write(bytes, 0, bytes.Length);//操作fs对象开展写入
    fs.Close();//关闭流

    Stream写入的单位是byte,char调换为byte时候,四个克罗地亚语char调换为二个byte(对应的ASCII码),二个普通话char转变为五个byte

    采用Default、UTF8、UTF32获得的字符串的byte[]长度不一致等,由此表明不一样类型编码在处理器中储存的区别样。

    用哪些编码写入就用什么样编码读取,不然会有乱码的主题素材。

    注意:不要往C盘写,因为Win7、Win8暗中认可普通程序尚未权力读写C盘

  5,FileStream读取

    1,byte[] bytes = new byte[4];
      每一次读取八个字节数据,不可能一遍把二个文书读抽出来,不然太占用内部存款和储蓄器,因为数组是挤占内部存储器的。
      这些名叫“缓冲区”,设的太小CPU和硬盘会很忙,设的太大内部存款和储蓄器会很“撑”

    2,while((len = fs.Read(bytes,0,bytes.Length))>0)
继续从流中读取最多bytes长度那么多字节的数目拷贝到bytes数组中。
      后一次read是从上次最后叁个read最终的岗位然后初叶读,三次次的读取read方法重临此次一同读了稍稍字节(比如蒙受最终一回读取只怕读不满),
      一旦回到的=0了,就证实读完了。
      对于没被赋值开头值正是0,因为没被填满的数组地方是0.

    3,String s = Encoding.Default.GetString(bytes,0,len);
把byte[]调换到对应string,思考bytes未有丰盛利用的场所

    4,字节流不合乎读取内容中带有文本文书档案,轻巧导致数据错乱(byte[]中蕴藏五成的汉字)。

      要用前边讲的StreamReader

十四、能源的关闭

  1,在上头的先后有劣点,假如write的时候发生相当,fs就不会close,别的程序就不可能写入这几个文件了,也会据有能源

  2,财富要采纳实现技巧close,一旦close之后再操作就能出错

  3,准确是做法是位于using(){}里面

十五、using

  1,可以并且注明多少个财富

    using(MyFile f1 = new MyFile
    using(MyFile f2 = new MyFile
    {

    }

  2,using其实就是编译器简化的try。。finally操作,

  3,using只是try。。finally,要是须要catch,只管catch正是了

  4,注意:完成了IDisposable接口的对象用完了,都要Dispose

十六、复制文件

  1,使用多少个FileStream协作达成文件拷贝:
    从源文件的FileStream中读取一局地内容,再写入到目的文件的FileStream中。

    解释代码:
    1,while((len = inStream.Read(bytes,0,bytes.Length))>0)
      把读取况且重返读取的长短给len,然后决断len的值,综合为了一句话。

    2,outStream.Write(bytes,0,len);
      每一趟write都会从上次write的最后地方接着写入。将byte[]
数组b写入outStream中,off代码距离当前写入地点的偏移量,一般写0,len代表写入多少长度。
      缓冲区先安装50,,修改为1M,体会速度的生成。使用Stop沃特ch类实行代码计时。

  2,封装二个Copy方法
    封装多个函数void copy(Stream inStream,Stream outStream,int
bufferSize)用来把inStream拷贝到outStream中,
    缓冲区大小为bufferSize。要检查参数合法性(是还是不是为null、bufferSize是或不是在创造界定)

  3,.Net 4.0将来Stream类中提供了叁个CopyTo方法

  4,Reader、Writer

    直接用Stream举办文本文件的读写会比较麻烦,因为急需思虑文件的编码、粤语字符等的主题材料

    StreamReader、StreamWriter是用来读写字符流(characterstream)的类,会帮着活动管理麻烦的标题

十七、编码

  1,由于历史由来,汉字等什么在Computer中以字节存积攒在着冒尖职业,最广泛的是GB2312(国标、表示汉字)、
    GBK(GB2312的恢宏,还可以表示繁体字等)、UTF-8、UTF-16等

  2,ANSI表示采取当下操作系统的暗中同意编码,要是是普通话Windows,暗中认可正是GBK

  3,用什么编码保留就用如何编码读取,就不会乱码

  4,如何用任何编码保留?由StreamWriter构造函数决定:new
StreamWriter(outStream, Encoding.UTF8
    怎么初始推断用了怎么着编码?记事本张开另存为,能够看出

  5,读取的编码由StreamReader构造函数决定

十八、泛型容器List<T>

  1,数高管度是原则性的,List<T>能够动态增加和删除内容。

    List<T>是泛型的,能够在注解的时候钦命放什么项指标数目。

  2,怎样扩大

    List<int> list = new List<int>();

    list.Add;

    list.Add;

    list.AddRange(new int[]{1,2,3,4,5});

    list.AddRange;//增添其它三个list

  3,如何遍历

    int[] nums = list.ToArray();//List泛型集合能够调换为数组

    List<string> listStr = new List<string>();

    string[] str = listStr.ToArray();

十九、泛型字典Dictionary<Key,Value>

  1,如何充实
    Dictionary<string,string> dict = new
Dictionary<string,string>();
    dict.Add(“zs”,”张三”);
    dict.Add(“ls”,”李四”);
    dict.Add(“ww”,”王五”);

yzc579亚洲城官网,  2,怎么样修改
    dict[“ls”] = “小赵”;
    String s = dict[“ww”];

  3,决断是不是含有
    dict.ContainsKey();

二十、foreach

  1,除了运用for循环能够开展遍历外,达成了IEumerable接口的对象还足以行使foreach实行遍历

    string[] strs = {“asdasd”,”qweqweq”,”gdfg”};
    foreach(string s in strs)
    {
      Console.WriteLine;
    }

  2,List<T>、Dictionary<K,V>等整套落实了IEnumerable接口的目的都足以举行遍历

    Dictionary<string,object> dict = new
Dictionary<string,object>();
    dict[“rupeng”] = 888;
    dict[“sina”] = “hehe”;
    dict[“baidu”] = true;
    foreach(KeyValuePair<string,object> kv in dict)
    {
      Console.WriteLine(kv.Key+”=”+kv.Value);
    }

Author

发表评论

电子邮件地址不会被公开。 必填项已用*标注