.NET“默认行终止符”?

时间:2009-10-08 16:03:38

标签: .net text newline

有没有办法弄清楚.NET正在使用什么作为其“默认行终止符”?例如,StringBuilder.AppendLine(String)的文档说它“附加指定字符串的副本,后跟默认行终止符......”。 .NET中几个与文本相关的类引用了相同的概念。

有没有办法以编程方式找出用作行终止符的内容(在运行时)?或者可以安全地假设Windows机器始终是“\ r \ n”?如果可以避免,我宁愿不将该值硬编码到我的代码中。

3 个答案:

答案 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'。