本帖最后由 许庭洲 于 2013-6-14 17:12 编辑
1. String在进行运算时(如赋值,拼接等)会产生一个新的实例, 而StringBuilder则不会. 所以在大量字符串拼接或频繁对某一字符串进行操作时最好用StringBuilder, 不要使用String;
2. 如果要操作一个不断增长的字符串,尽量不用String类, 改用StringBuilder类.
3. 例如,字符串MyString1和MyString2相连接,实际上建立了三个字符串对象,把连接后的值"please enter your name"赋予了它. 这样就降低了代码的性能, 因为创建了新对象,分配了新空间, 而已经分配的空间实际上浪费了.
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
string MyString1 = "Please";
string MyString2 = "enter your name";
MyString1 = string.Concat(MyString, MyNewString);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
如果采用StringBuilder类,就可以解决上面例子中的性能问题. StringBuilder不会创建新的对象. 看看下面改进后的代码:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
StringBuilder MyStringBuilder = new StringBuilder("Please");
string MyNewString = "enter your name";
MyStringBuilder.Append(MyNewString);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|