有没有办法弄清楚.NET正在使用什么作为其“默认行终止符”?例如,StringBuilder.AppendLine(String)的文档说它“附加指定字符串的副本,后跟默认行终止符......”。 .NET中几个与文本相关的类引用了相同的概念。
有没有办法以编程方式找出用作行终止符的内容(在运行时)?或者可以安全地假设Windows机器始终是“\ r \ n”?如果可以避免,我宁愿不将该值硬编码到我的代码中。
答案 0 :(得分:43)
StringBuilder.AppendLine
将使用Environment.NewLine
,非Unix平台为“\r\n
”,Unix平台为“\n
”。
对于Windows计算机,它始终为“\r\n
”,但您可以使用Environment.NewLine
代替硬编码值。
感谢@Guffa验证此
答案 1 :(得分:20)
这是StringBuilder.AppendLine(string)
方法的代码(使用.NET Reflector):
[ComVisible(false)]
public StringBuilder AppendLine(string value)
{
this.Append(value);
return this.Append(Environment.NewLine);
}
如您所见,它确实使用Environment.NewLine
属性。
答案 2 :(得分:3)
在Mac上,新行是'\ r',直到他们的操作系统基于Linux。现在是'\ n'。