Pourquoi Environment.NewLine = "\ r \ n" lorsque "\ n" dans un littéral de chaîne fonctionne de la même manière?

En C# si vous faites quelque chose comme string newLine = Environment.NewLine; et inspecter la valeur de newLine vous trouverez qu'il est "\r\n". Cependant, si je fais quelque chose comme;

  string[] test = new string[] { "one", "two", "three" };

  Console.WriteLine("With plain slash n:");
  Console.Write(String.Join("\n", test));
  Console.WriteLine("\nWith Environment.NewLine:");
  Console.Write(String.Join(Environment.NewLine, test));

La sortie est fonctionnellement identique.

Pourquoi est Environment.NewLine ensemble de \r\n au lieu de simplement \n? N'est-ce pas tout simplement le rendre plus difficile pour convertir la chaîne de caractères tableau? Aussi j'ai lu quelque chose qui m'a conduit à croire certains champs de saisie ne comptent pas Environment.NewLine comme deux caractères qui pourraient causer des problèmes si votre champs de sauvegarde sont limités à la longueur du champ de saisie. Existe-il des raisons positives pour elle? C'est juste de l'héritage trucs à ce point?

source d'informationauteur evanmcdonnal