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.NewLinejest \r\n, ale \njest również nazywany „nowa linia”. Dlaczego nie nazwali tego drugiego bardziej znaną nazwą „line feed” i nie rozwiewali zamieszania? Przydałyby się \lrównież.
Dokładna implementacja Environment.NewLinez 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.NewLinezwraca 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”.