C#——string和StringBuilder

  string是引用类型,是不可变的,其中有一个方法Intern,用于返回一个字符串的引用,该字符串位于一个称作驻留池(intern pool)的地方。Intern方法接受一个以编程方式创建的字符串参数(个人理解为该字符串还没有加入驻留池),并且返回驻留池中对同一字符串(即上述参数值)的引用。

  示例:

  string str1="string 1";//驻留池中的字符串

  string objStr1=string.Concat("string ","1");//已编程的方式创建的字符串

  string internedStr1=string.Intern(objStr1);获取与objStr1同值的驻留池引用

其中,(object)objStr1==(object)str1返回false;(object)internedStr1==(object)str1返回true.

之所以强类型转换为object,是因为object进行相等性比较,就是比较引用是否相等。

  StringBuilder,对字符串改变,不会引发创建新对象产生的开销,在对字符串进行4次处理后应该使用StringBuilder而不是string.

 

posted on 2011-11-23 21:56  码民  阅读(119)  评论(0)    收藏  举报