我想知道两者之间的区别(如果有的话):
StringBuilder sb = new StringBuilder();
sb.Append("xxx");
sb.Append("yyy");
sb.Append("zzz");
和 :
StringBuilder sb = new StringBuilder();
sb.Append("xxx")
.Append("yyy")
.Append("zzz");
我想知道两者之间的区别(如果有的话):
StringBuilder sb = new StringBuilder();
sb.Append("xxx");
sb.Append("yyy");
sb.Append("zzz");
和 :
StringBuilder sb = new StringBuilder();
sb.Append("xxx")
.Append("yyy")
.Append("zzz");
没有区别,后一种情况称为“Fluent Syntax”。
没有功能上的区别。在您的第一种情况下,您StringBuilder
在三个语句中以相同的顺序将字符串附加到相同的位置。在第二种情况下,您StringBuilder
在一个语句中将相同的字符串附加到相同的字符串。
不会有显着的性能差异,也绝对没有可观察到的差异。您可以从风格上选择其中一种。
IL 肯定会在两者之间看起来不同,并且从第一眼看,链接版本可能会快几纳秒(我只是喜欢说纳秒。),但没有什么可以考虑重构你的代码。如果它看起来更干净,我会走那条路。
它总是困扰着我,怎么StringBuilder.Append
总是会自己回来。它使人们认为 StringBuilder 是一种不可变的结构,而事实并非如此。这在 F# 中也特别烦人,您必须明确忽略它返回的内容。但是该怎么办?
它们之间没有区别。但是您可以使用第二个来减少代码行:)