C# 字符串

C# 字符串  
字符串的本质其实是一个只读的字符数组。所以我们可以像操作字符数组那样去操作这个字符串。
     
字符串的恒定性
     1、字符串对象是创建在一个叫做“字符串拘留池”当中的。
     2、字符串对象一旦创建在“字符串拘留池”中,那么这个字符串对象就无法改变
     3、当我们修改字符串变量的值的时候,不会修改这个字符串变量指向的对象。而是重新的创建一个字符串对象,将这个字符串对象的地址赋值给这个字符串变量。
     4、当我们新声明一个字符串的时候,会先检查“字符串拘留池”中是否有相同内容的字符串对象,如果有直接指向,如果没有才会创建字符串对象。
     5、当我们修改一个字符串的值的时候,也会先检查“字符串拘留池”中是否有相同内容的字符串对象,如果有直接指向,如果没有才会重新创建。
     6、字符串拘留池中的对象即使成为了垃圾对象,也不会被GC回收。就算调用GC.Collect();也不会回收池中字符串垃圾对象。
 
大批量的字符串拼接  
      a、如果用字符串去做大批量拼接,那么在每拼接一次的时候,都会创建一个字符串对象。创建对象本身是比较耗时的。
      b、StringBuilder类,专门用来做大批量的字符串拼接的。这是1个类,所以如果要使用的话,就要创建1个对象来使用。
           Append()方法 向这个对象中追加字符串
           AppendLine()追加完成之后换行
           AppendFormat() 以占位符的方式来追加。
           Clear()将对象中的字符串全部清空。
 
   各种对字符串的操作,操作完毕以后,原来的字符串是不会发生改变的,因为字符串的恒定性。操作完成以后,方法会将新的字符串以方法的返回值返回。
posted @ 2015-08-13 00:07  Chen_Weifeng  阅读(210)  评论(0编辑  收藏  举报