¿Cuál es la diferencia entre dos, si hay alguna (con respecto a .Net)?
c#
.net
cross-platform
Prerak K
fuente
fuente
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:
fuente
La implementación en .NET Core:
fuente (en
System.Private.CoreLib
)fuente (en
System.Runtime.Extensions
)fuente
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.fuente
\n
Environment.NewLine
devolverá el carácter de nueva línea para la plataforma correspondiente en la que se está ejecutando su códigoEsto le resultará muy útil cuando implemente su código en Linux en el marco Mono
fuente
De los documentos ...
fuente
Environment.NewLine dará "\ r \ n" cuando se ejecute en Windows. Si está generando cadenas para entornos basados en Unix, no desea el "\ r".
fuente
Puede tener problemas cuando intente mostrar un mensaje de varias líneas separado con "\ r \ n".
Siempre es una buena práctica hacer las cosas de manera estándar y usar el entorno.
fuente