有沒有什麼辦法可以找出.NET用作其「默認行結束符」?例如,StringBuilder.AppendLine(String)的文檔說它「附加指定字符串的副本,後跟默認行終止符...」。 .NET中幾個與文本相關的類引用了相同的概念。.NET「默認行結束符」?
有沒有什麼辦法可以通過編程來找出什麼是作爲行終止符(在運行時)?或者是否可以安全地假設Windows機器始終爲「\ r \ n」?如果我能避免它,我寧願不將這些值硬編碼到我的代碼中。
有沒有什麼辦法可以找出.NET用作其「默認行結束符」?例如,StringBuilder.AppendLine(String)的文檔說它「附加指定字符串的副本,後跟默認行終止符...」。 .NET中幾個與文本相關的類引用了相同的概念。.NET「默認行結束符」?
有沒有什麼辦法可以通過編程來找出什麼是作爲行終止符(在運行時)?或者是否可以安全地假設Windows機器始終爲「\ r \ n」?如果我能避免它,我寧願不將這些值硬編碼到我的代碼中。
StringBuilder.AppendLine
將使用Environment.NewLine
,其對於非Unix平臺是「\r\n
」而對於Unix平臺是「\n
」。
Windows機器始終爲「\r\n
」,但您可以使用Environment.NewLine
代替硬編碼值。
感謝@Guffa驗證此
這是(使用.net反射)從StringBuilder.AppendLine(string)
方法的代碼:
[ComVisible(false)]
public StringBuilder AppendLine(string value)
{
this.Append(value);
return this.Append(Environment.NewLine);
}
正如你看到的,它確實使用Environment.NewLine
財產。
在Mac上,換行符是'\ r',直到他們基於Linux操作系統。現在它的'\ n'。
僅僅是一個小小的挑剔:今天的Mac OS實際上基於UNIX,而不是Linux。第一個基於UNIX的版本於2001年初發布,大約在.NET發佈前一年。所以'\ r'符號在一段時間內並不相關。 – 2011-06-20 16:33:06
啊完美,我知道一定有這樣的事情。謝謝! – 2009-10-08 16:25:23
希望有一種方法可以更改特定StringBuilder對象的默認行終止符 – Alex 2012-07-05 14:34:18