Append(Environment.NewLine)和AppendLine(string.empty)之间是否有任何实际区别,或者它只是一种风格选择?

时间:2014-06-03 21:52:56

标签: c# stringbuilder

据推测,所有这些行都具有相同的效果:

stringyBuilder.Append(Environment.NewLine);
stringyBuilder.AppendLine(string.Empty);
stringyBuilder.AppendLine();

(stringyBuilder,如果不是很明显,是一个StringBuilder对象)。

...一个人比其他人更受欢迎,还是宗教热情?

2 个答案:

答案 0 :(得分:1)

它们在功能上都是等价的。 stringyBuilder.AppendLine(string.Empty);会向Append添加一次调用,这会导致一些额外的处理:

来自reference source

public StringBuilder AppendLine() {
    return Append(Environment.NewLine);
}

public StringBuilder AppendLine(string value) {
    Append(value);
    return Append(Environment.NewLine);
}

StringBuilder.AppendLine()

的文档
  

将默认行终止符追加到当前StringBuilder对象的末尾。

如果您询问偏好设置,我认为大多数人都会首选stringyBuilder.AppendLine();,因为与stringyBuilder.Append(Environment.NewLine);

相比,它更短,性能影响为零

答案 1 :(得分:1)

第一个和第三个选项之间没有区别,因为AppendLine implementedAppend的{​​{1}}调用System.Environment.NewLine

public StringBuilder AppendLine () {
    return Append (System.Environment.NewLine);
}

中间选项是次优的,因为它尝试追加一个空字符串。但这需要很短的时间,并且在功能上与其他两个相当。