Antworten:
Kommt auf die Plattform an. Unter Windows ist es tatsächlich "\ r \ n".
Von MSDN:
Eine Zeichenfolge mit "\ r \ n" für Nicht-Unix-Plattformen oder eine Zeichenfolge mit "\ n" für Unix-Plattformen.
Environment.NewLine
wird \r\n
aber \n
auch "New Line" genannt. Warum haben sie letztere nicht einfach bei ihrem bekannteren Namen "Zeilenvorschub" genannt und die Verwirrung beseitigt? Sie hätten auch gebrauchen können \l
.
Genaue Implementierung Environment.NewLine
aus dem Quellcode:
Die Implementierung in .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";
}
}
Die Implementierung in .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
}
}
Quelle (in System.Private.CoreLib
)
public static string NewLine => "\r\n";
Quelle (in System.Runtime.Extensions
)
Gibt, wie andere bereits erwähnt haben, Environment.NewLine
eine plattformspezifische Zeichenfolge zum Beginnen einer neuen Zeile zurück. Dies sollte sein:
"\r\n"
(\ u000D \ u000A) für Windows"\n"
(\ u000A) für Unix"\r"
(\ u000D) für Mac (falls eine solche Implementierung vorhanden war)Beachten Sie, dass beim Schreiben in die Konsole Environment.NewLine nicht unbedingt erforderlich ist. Der Konsolen-Stream wird "\n"
bei Bedarf in die entsprechende neue Zeilenfolge übersetzt .
\n
Aus den Dokumenten ...
Eine Zeichenfolge mit "\ r \ n" für Nicht-Unix-Plattformen oder eine Zeichenfolge mit "\ n" für Unix-Plattformen.
Environment.NewLine gibt unter Windows "\ r \ n" aus. Wenn Sie Zeichenfolgen für Unix-basierte Umgebungen generieren, möchten Sie kein "\ r".