StringBuilder.Append问题

时间:2009-12-28 14:33:10

标签: c# stringbuilder

我想知道之间的区别(如果有的话):

StringBuilder sb = new StringBuilder(); 
sb.Append("xxx");
sb.Append("yyy");
sb.Append("zzz");

并且:

StringBuilder sb = new StringBuilder(); 
sb.Append("xxx")
  .Append("yyy")
  .Append("zzz");

4 个答案:

答案 0 :(得分:11)

没有区别,后一种情况称为“流利语法”。

答案 1 :(得分:1)

没有功能差异。在第一种情况下,您将在三个语句中以相同的顺序将字符串附加到相同的StringBuilder。在第二种情况下,您在一个语句中将相同的字符串附加到同一个StringBuilder

没有显着的性能差异,绝对没有可观察到的差异。你可以选择其中一种风格。

答案 2 :(得分:1)

IL肯定会在两者之间看起来不同,只是从第一次看起来,链式版本可能会快几毫秒(我只想说纳秒)。但是没有什么可以考虑重构你的代码。如果它看起来更干净,我就走这条路。

它总是让我烦恼,StringBuilder.Append总会如何回归。它使人们认为StringBuilder是一个不可变的结构,当它绝对不是。它在F#中也特别烦人,你必须明确地忽略它返回的内容。那该怎么办?

答案 3 :(得分:0)

它们之间没有区别。但是你可以使用第二个来减少代码行:)

相关问题