Réponses:
Dépend de la plateforme. Sous Windows, il s'agit en fait de "\ r \ n".
Depuis MSDN:
Une chaîne contenant "\ r \ n" pour les plates-formes non Unix, ou une chaîne contenant "\ n" pour les plates-formes Unix.
Environment.NewLine
est \r\n
mais \n
est aussi appelé "nouvelle ligne". Pourquoi n'ont-ils pas simplement appelé ce dernier par son nom plus connu de "saut de ligne" et éliminé la confusion? Ils auraient pu utiliser \l
aussi.
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 (en System.Private.CoreLib
)
public static string NewLine => "\r\n";
source (en System.Runtime.Extensions
)
Comme d'autres l'ont mentionné, Environment.NewLine
retourne 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 la console se traduira "\n"
par la séquence de nouvelle ligne appropriée, si nécessaire.
\n
De la documentation ...
Une chaîne contenant "\ r \ n" pour les plates-formes non Unix, ou une chaîne contenant "\ n" pour les plates-formes Unix.
Environment.NewLine donnera "\ r \ n" lorsqu'il est exécuté sur Windows. Si vous générez des chaînes pour les environnements basés sur Unix, vous ne voulez pas le "\ r".