当我在字符串中添加文字时,我应该使用:
var myStringBuilder = new StringBuilder();
myStringBuilder.AppendLine("some text");
或
var myString = "";
myString += ("some text");
为什么?
答案 0 :(得分:3)
如果您要追加多行StringBuilder.AppendLine
,那么性能会更好。如果它只是一个,那么使用+=
。
+=
都会创建一个全新的,不可变的string
。当您想要使用字符串调用StringBuilder
StringBuilder.ToString()
会在内部使用扩展缓冲区
答案 1 :(得分:1)
您应该始终使用AppendLine
及其兄弟功能。第二种语法有效,但只是因为有足够的隐式转换可用。即使对于单个附加,它也不会比Append
变量具有更低的性能,因为它在内部执行一些额外的字符串分配来执行追加,而StringBuilder
已经在内部保留了空间。如果一个代表性的基准测试显示第一个例子比第二个例子快至少3倍,我就不会感到惊讶。