.NET"默认行终止符"?

Han*_*ank 25 .net text newline

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

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

Don*_*nut 44

StringBuilder.AppendLine将使用Environment.NewLine,\r\n对于非Unix平台使用" \n",对于Unix平台使用" ".

\r\n对于Windows机器,它始终是" ",但您可以使用Environment.NewLine它来代替硬编码值.

感谢@Guffa验证这一点

  • 希望有一种方法可以更改特定 StringBuilder 对象的默认行终止符 (2认同)

Guf*_*ffa 20

这是该StringBuilder.AppendLine(string)方法的代码(使用.NET Reflector):

[ComVisible(false)]
public StringBuilder AppendLine(string value)
{
   this.Append(value);
   return this.Append(Environment.NewLine);
}
Run Code Online (Sandbox Code Playgroud)

如你所见,它确实使用了该Environment.NewLine属性.