Odpowiedzi:
Zależy od platformy. W systemie Windows jest to w rzeczywistości „\ r \ n”.
Z MSDN:
Ciąg zawierający „\ r \ n” dla platform innych niż Unix lub ciąg zawierający „\ n” dla platform Unix.
Environment.NewLine
jest \r\n
, ale \n
jest również nazywany „nowa linia”. Dlaczego nie nazwali tego drugiego bardziej znaną nazwą „line feed” i nie rozwiewali zamieszania? Przydałyby się \l
również.
Dokładna implementacja Environment.NewLine
z kodu źródłowego:
Implementacja w .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";
}
}
Implementacja w .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
}
}
źródło (w System.Private.CoreLib
)
public static string NewLine => "\r\n";
źródło (w System.Runtime.Extensions
)
Jak wspomnieli inni, Environment.NewLine
zwraca specyficzny dla platformy ciąg znaków dla rozpoczęcia nowego wiersza, który powinien być:
"\r\n"
(\ u000D \ u000A) dla systemu Windows"\n"
(\ u000A) dla Uniksa"\r"
(\ u000D) dla komputerów Mac (jeśli taka implementacja istniała)Pamiętaj, że pisząc do konsoli, Environment.NewLine nie jest absolutnie konieczne. W "\n"
razie potrzeby strumień konsoli przełoży się na odpowiednią sekwencję nowego wiersza.
\n
Z dokumentów ...
Ciąg zawierający „\ r \ n” dla platform innych niż Unix lub ciąg zawierający „\ n” dla platform Unix.
Environment.NewLine da „\ r \ n” po uruchomieniu w systemie Windows. Jeśli generujesz ciągi dla środowisk opartych na Uniksie, nie chcesz „\ r”.