首先,我对使用 StringBuilder
类有点困惑:
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
是不值得的,不是吗?