之間的區別是什麼(如果有的話)(關於.Net)?「 n」和Environment.NewLine
回答
取決於平臺。在Windows上它實際上是「\ r \ n」。
從MSDN:
一個包含字符串 「\ r \ n」 表示 非Unix平臺,或一串 含有 「\ n」 表示Unix平臺。
Environment.NewLine在Windows上運行時會給出「\ r \ n」。如果您爲基於Unix的環境生成字符串,則不需要「\ r」。
Environment.NewLine
將返回換行符對相應的平臺中,你的代碼運行
,你會發現這是非常有用的,當你在Linux上Mono框架
正如其他人所提到的部署代碼, Environment.NewLine
返回開始一個新行平臺特定的字符串,它應該是:
"\r\n"
(\ u000D \ u000A)的Windows"\n"
(\ u000A)爲Unix"\r"
(\ u000D)爲Mac(如果這樣實施存在)
注意寫入控制檯時,Environment.NewLine不是絕對必要的。如有必要,控制檯流會將"\n"
轉換爲適當的新行序列。
Mac的實現確實存在。只是單聲道。運行任何東西。 – Dykam 2010-01-17 07:41:26
當您嘗試顯示以「\ r \ n」分隔的多行消息時,您可能會遇到麻煩。
它始終是一個很好的做法,做事情的標準方式,並使用Environment.NewLine
從源代碼的確切實施Environment.NewLine
:
在.NET 4.6.1執行:
/*===================================NewLine====================================
**Action: A property which returns the appropriate newline string for the given
** platform.
**Returns: \r\n on Win32.
**Arguments: None.
**Exceptions: None.
==============================================================================*/
public static String NewLine {
get {
Contract.Ensures(Contract.Result<String>() != null);
return "\r\n";
}
}
中的實現。NET核心:
/*===================================NewLine====================================
**Action: A property which returns the appropriate newline string for the
** given platform.
**Returns: \r\n on Win32.
**Arguments: None.
**Exceptions: None.
==============================================================================*/
public static String NewLine {
get {
Contract.Ensures(Contract.Result() != null);
#if !PLATFORM_UNIX
return "\r\n";
#else
return "\n";
#endif // !PLATFORM_UNIX
}
}
source(在System.Private.CoreLib
)
public static string NewLine => "\r\n";
source(在System.Runtime.Extensions
)
- 1. C#\ n,\ r \ n或Environment.NewLine
- 2. Environment.Newline和替換
- 3. port.WriteLine(「AT」);和port.Write(「AT」+ Environment.NewLine);
- 4. vbCrLF or Environment.NewLine
- 5. Environment.NewLine有時會返回\ n換行而不是\ r \ n回車,換行
- 6. 「\ r \ n」或VS2003中的environment.newline不適用於IE11或Chrome
- 7. 爲什麼Environment.NewLine不能在我的String.Replace()中工作,但「\ n」呢?
- 8. Environment.NewLine和TextWriter.NewLine屬性有什麼用處
- 9. .Replace(Environment.NewLine, 「<br />」)
- 10. 添加Environment.NewLine到FILESTREAM
- 11. ASP.NET - Environment.NewLine包裝L1標籤
- 12. 如何使用Newtonsoft.Json.Compact的Environment.newLine?
- 13. Environment.NewLine在Windows Phone 7的
- 14. 爲什麼Silverlight TextBox使用\ r作爲換行符而不是Environment.Newline(\ r \ n)?
- 15. 使用Environment.Newline分割字符串在大多數數組項中離開\ n?
- 16. .NET中的Environment.NewLine沒有正確的值
- 17. Environment.NewLine等效於緊湊框架2.0
- 18. VB.net插入20個字符的Environment.NewLine
- 19. 我可以更改Environment.NewLine的價值嗎?
- 20. 如何正確添加CRLF(Environment.NewLine)到FileStream?
- 21. vb.net RichTextBox的Environment.NewLine不表示CR僅LF
- 22. 「\ n」和'\ n'的長度爲
- 23. 蟒蛇代替「*‘和’。\ n *」除「‘和’。\ n」
- 24. 第(N-2)和第(N-1)的第N個輸出總和
- 25. 和裏urlparse '\ n'
- 26. fork()和「\ n」
- 27. [n]和INT **
- 28. Markdown sharp和\ n
- 29. 問題與文件IO和拆分字符串與VB.Net中的Environment.NewLine
- 30. numpy廣播(N,)和與(N,1)數組
哪個UNIX平臺並投入運行的.NET微軟爲它的文檔? (我的意思是,來自Mono的一部分。) – Jack 2014-07-27 04:24:06
@Jack您可以寫入將在Unix平臺上打開的文件。或者發送包中的文本,這些文本將被unix平臺接收。幾個月後,.net將在Unix平臺上運行。它已經開始 – 2015-05-01 13:36:14