tutorial que programacion para net mac framework c# .net cross-platform

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"; } }

source

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 )