Ответы:
Зависит от платформы. На Windows это на самом деле "\ r \ n".
Из MSDN:
Строка, содержащая «\ r \ n» для не-Unix-платформ, или строка, содержащая «\ n» для Unix-платформ.
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) для Windows"\n"
(\ u000A) для Unix"\r"
(\ u000D) для Mac (если такая реализация существовала)Обратите внимание, что при записи в консоль Environment.NewLine не является строго обязательным. Поток консоли будет преобразован "\n"
в соответствующую последовательность новой строки, если это необходимо.
\n
Из документов ...
Строка, содержащая «\ r \ n» для не-Unix-платформ, или строка, содержащая «\ n» для Unix-платформ.
Environment.NewLine выдаст «\ r \ n» при запуске в Windows. Если вы генерируете строки для сред на основе Unix, вам не нужен символ "\ r".