Respuestas:
Depende de la plataforma. En Windows, en realidad es "\ r \ n".
De MSDN:
Una cadena que contiene "\ r \ n" para plataformas que no son Unix, o una cadena que contiene "\ n" para plataformas Unix.
Environment.NewLine
es Unix, \r\n
pero \n
también se llama "nueva línea". ¿Por qué no simplemente llamaron a este último por su nombre más conocido "avance de línea" y eliminaron la confusión? Podrían haber usado \l
también.
Implementación exacta del Environment.NewLine
código fuente:
La implementación en .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";
}
}
La implementación en .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
}
}
fuente (en System.Private.CoreLib
)
public static string NewLine => "\r\n";
fuente (en System.Runtime.Extensions
)
Como otros han mencionado, Environment.NewLine
devuelve una cadena específica de plataforma para comenzar una nueva línea, que debería ser:
"\r\n"
(\ u000D \ u000A) para Windows"\n"
(\ u000A) para Unix"\r"
(\ u000D) para Mac (si existiera dicha implementación)Tenga en cuenta que al escribir en la consola, Environment.NewLine no es estrictamente necesario. La transmisión de la consola se traducirá "\n"
a la secuencia de nueva línea apropiada, si es necesario.
\n
De los documentos ...
Una cadena que contiene "\ r \ n" para plataformas que no son Unix, o una cadena que contiene "\ n" para plataformas Unix.
Environment.NewLine dará "\ r \ n" cuando se ejecute en Windows. Si está generando cadenas para entornos basados en Unix, no desea el "\ r".