2009-06-18 42 views

回答

148

取決於平臺。在Windows上它實際上是「\ r \ n」。

從MSDN:

一個包含字符串 「\ r \ n」 表示 非Unix平臺,或一串 含有 「\ n」 表示Unix平臺。

+5

哪個UNIX平臺並投入運行的.NET微軟爲它的文檔? (我的意思是,來自Mono的一部分。) – Jack 2014-07-27 04:24:06

+6

@Jack您可以寫入將在Unix平臺上打開的文件。或者發送包中的文本,這些文本將被unix平臺接收。幾個月後,.net將在Unix平臺上運行。它已經開始 – 2015-05-01 13:36:14

8

docs ...

一個包含字符串 「\ r \ n」 表示 非Unix平臺,或一串 含有 「\ n」 表示Unix平臺。

+0

+1鏈接 – JeffH 2009-06-19 13:51:46

3

Environment.NewLine在Windows上運行時會給出「\ r \ n」。如果您爲基於Unix的環境生成字符串,則不需要「\ r」。

18

Environment.NewLine將返回換行符對相應的平臺中,你的代碼運行

,你會發現這是非常有用的,當你在Linux上Mono框架

63

正如其他人所提到的部署代碼, Environment.NewLine返回開始一個新行平臺特定的字符串,它應該是:

  • "\r\n"(\ u000D \ u000A)的Windows
  • "\n"(\ u000A)爲Unix
  • "\r"(\ u000D)爲Mac(如果這樣實施存在)

注意寫入控制檯時,Environment.NewLine不是絕對必要的。如有必要,控制檯流會將"\n"轉換爲適當的新行序列。

+0

Mac的實現確實存在。只是單聲道。運行任何東西。 – Dykam 2010-01-17 07:41:26

4

當您嘗試顯示以「\ r \ n」分隔的多行消息時,您可能會遇到麻煩。

它始終是一個很好的做法,做事情的標準方式,並使用Environment.NewLine

92

從源代碼的確切實施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"; 
    } 
} 

source


中的實現。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

相關問題