字符串的处理

 1.字符串的连接:

使用+来连接字符串时,避免不同类型的值进行连接;先将其都转换为string类型后再进行转换。

如果不同类型的值,一定会产生装箱操作,产生额外性能的开销。

1   string a = "a" + 9;//会产生装箱操作
2   string a = "a" + 9.ToString();
下图为1的IL代码
字符串的处理

提示:字符串对象是个很特殊的对象,一旦赋值就不可改变,进行任何计算,都会在内存中创建一个新的字符串对象,也需要为其分配新的内存空间。


 解决办法:可以使用StringBuilder av = new StringBuilder(a);不过它有个限制,默认长度是小于等于16的,如果所存字符串大于16,这需为其分配空间,分配均是按照上次的容量加倍,所以我们必须一开始就为其分配合适的大小,否则太大也会浪费内存。

2.string.Format :格式化

  是在其内部使用StringBuider进行字符串的格式化

 string a = "a"; 
 string b = "b";
 string c = "c";
 string d = "d";
 string contact = string.Format("{0}{1}{2}{3}", a, b, c, d);
结果:abcd