引用如下: “string”对象的连接操作总是从现有的“string”和新数据创建一个新对象。 StringBuilder对象维护一个缓冲区以容纳新数据的连接。 如果有空间,则将新数据附加到缓冲区的末尾; 否则,将分配一个新的、更大的缓冲区,将原始缓冲区中的数据复制到新缓冲区,然后将新数据附加到新缓冲区。
但是,创建StringBuilder实例来避免创建新的String对象的好处在哪里?这听起来像是一对一的交易。
static void Main(string[] args)
{
String foo = "123";
using (StringBuilder sb = new StringBuilder(foo)) // also sb isn't disposable, so there will be error
{
sb.Append("456");
foo = sb.ToString();
}
Console.WriteLine(foo);
Console.ReadKey();
}
为什么不应该只使用
+=
编辑:好的,我现在知道如何重复使用一个StringBuilder
实例(但我仍然不知道这是否符合代码标准),但是如果只有一个string
,这并不值得使用,对吧?