Quelle est la différence entre deux, le cas échéant (par rapport à .Net)?
Dépend de la plate-forme. Sous Windows, il s’agit en fait de "\ r\n".
De MSDN:
Une chaîne contenant "\ r\n" pour les plateformes autres qu'Unix ou une chaîne contenant "\ n" pour les plateformes Unix.
Implémentation exacte de Environment.NewLine
à partir du code source:
L'implémentation dans .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";
}
}
L'implémentation dans .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 (in System.Private.CoreLib
)
public static string NewLine => "\r\n";
source (in System.Runtime.Extensions
)
Comme d'autres l'ont mentionné, Environment.NewLine
renvoie une chaîne spécifique à la plate-forme pour commencer une nouvelle ligne, qui devrait être:
"\r\n"
(\ u000D\u000A) pour Windows"\n"
(\ u000A) pour Unix"\r"
(\ u000D) pour Mac (si une telle implémentation existait)Notez que lors de l'écriture sur la console, Environment.NewLine n'est pas strictement nécessaire. Le flux de console traduira "\n"
en la nouvelle ligne appropriée, si nécessaire.
Environment.NewLine
renverra le caractère de nouvelle ligne de la plate-forme correspondante sur laquelle votre code est exécuté
vous trouverez cela très utile lorsque vous déploierez votre code sous Linux sur le framework Mono
De la docs ...
Une chaîne contenant "\ r\n" pour les plateformes autres qu'Unix ou une chaîne contenant "\ n" pour les plateformes Unix.
Vous pourriez avoir des problèmes lorsque vous essayez d'afficher un message multiligne séparé par "\ r\n".
C'est toujours une bonne pratique de faire les choses de manière standard et d'utiliser Environment.NewLine
Environment.NewLine donnera "\ r\n" lorsqu'il est exécuté sur Windows. Si vous générez des chaînes pour des environnements Unix, vous ne voulez pas du "\ r".