回答:
プラットフォームによって異なります。Windowsでは、実際には「\ r \ n」です。
MSDNから:
非UNIXプラットフォームの場合は「\ r \ n」を含む文字列、Unixプラットフォームの場合は「\ n」を含む文字列。
Environment.NewLine
ある\r\n
が、\n
また「新しい行」と呼ばれています。なぜ後者をよりよく知られている名前で「改行」と呼んで混乱をなくさなかったのでしょうか。彼らも使用できたでしょう\l
。
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 Coreでの実装:
/*===================================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
}
}
ソース(内System.Private.CoreLib
)
public static string NewLine => "\r\n";
ソース(内System.Runtime.Extensions
)
他の人が述べたように、Environment.NewLine
新しい行を開始するためのプラットフォーム固有の文字列を返します。
"\r\n"
(\ u000D \ u000A)for Windows"\n"
(\ u000A)Unix"\r"
(\ u000D)for Mac(そのような実装が存在する場合)コンソールに書き込む場合、Environment.NewLineは厳密には必要ありません。コンソールストリームは"\n"
、必要に応じて適切な改行シーケンスに変換されます。
\n
Environment.NewLineは、Windowsで実行すると「\ r \ n」を返します。Unixベースの環境で文字列を生成する場合は、「\ r」は不要です。