new .NET“默認行終止符”?




c# textbox multiline newline character (3)

有沒有辦法弄清楚.NET正在使用什麼作為其“默認行終止符”? 例如,StringBuilder.AppendLine(String)的文檔說它“附加指定字符串的副本,後跟默認行終止符......”。 .NET中的幾個與文本相關的類引用了相同的概念。

有沒有辦法以編程方式弄清楚什麼是用作行終止符(在運行時)? 或者可以安全地假設Windows機器始終是“\ r \ n”? 如果我可以避免它,我寧願不將該值硬編碼到我的代碼中。


這是StringBuilder.AppendLine(string)方法的代碼(使用.NET Reflector):

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

如您所見,它確實使用了Environment.NewLine屬性。


在Mac上,新行是'\ r',直到他們的操作系統基於Linux。 現在是'\ n'。


StringBuilder.AppendLine將使用Environment.NewLine ,對於非Unix平台是“ \r\n ”,對於Unix平台是“ \n ”。

對於Windows機器,它始終是“ \r\n ”,但您可以使用Environment.NewLine代替硬編碼值。

感謝@Guffa驗證這一點





newline