字符串的处理
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