c# - programacion - .net que es
Diferencia entre "/ n" y Environment.NewLine (7)
¿Cuál es la diferencia entre dos, si hay alguno (con respecto a .Net)?
Como han mencionado otros, Environment.NewLine
devuelve una cadena específica de la 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 tal implementación existió)
Tenga en cuenta que al escribir en la consola, Environment.NewLine no es estrictamente necesario. La secuencia de la consola traducirá "/n"
a la secuencia apropiada de la nueva línea, si es necesario.
De los docs ...
Una cadena que contiene "/ r / n" para plataformas que no son Unix, o una cadena que contiene "/ n" para plataformas Unix.
Depende de la plataforma. En Windows, en realidad es "/ r / n".
Desde MSDN:
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 la "/ r".
Puede tener problemas cuando intenta mostrar mensajes de varias líneas separados por "/ r / n".
Siempre es una buena práctica hacer las cosas de forma estándar y usar Environment.NewLine
Environment.NewLine
devolverá el carácter de nueva línea para la plataforma correspondiente en la que se ejecuta el código
lo encontrará muy útil cuando despliegue su código en linux en el marco Mono
Implementación exacta de Environment.NewLine
partir del 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
}
}
source (en System.Private.CoreLib
)
public static string NewLine => "/r/n";
source (en System.Runtime.Extensions
)