Retour chariot et saut de ligne ... sont tous deux requis en C#?

Lors de l'insertion d'un nouveau caractère de ligne dans une chaîne, j'ai généralement fait ceci:

str = "First linenSecond line";

En C#, est-ce la norme? Dois-je également inclure le caractère 'retour chariot' 'r'? Y a-t-il une différence entre les éléments suivants et, si oui, quels sont-ils?

str = "First linenSecond line";
str = "First linernSecond line";

Si l'utilisation de' retour chariot 'et de' saut de ligne ' est une pratique standard, y a-t-il un ordre spécifique et pourquoi?

Note: j'ai lu quelques autres messages sur SO mais je n'ai pas trouvé de réponse spécifique à . NET / C#.

Edit: après avoir testé une petite application, je n'ai pas vu de différence entre 'N ' et 'n r ' ou ' r n'.

29
demandé sur Luke Baulch 2011-03-08 05:37:38

3 réponses

System.Environment.NewLine est la constante que vous recherchez - http://msdn.microsoft.com/en-us/library/system.environment.newline.aspx {[13] } qui fournira une combinaison spécifique à l'environnement que la plupart des programmes sur un système d'exploitation donné considéreront "prochaine ligne de texte".

En pratique, la plupart des outils de texte traitent toutes les variations qui incluent \n comme "nouvelle ligne" et vous pouvez simplement l'utiliser dans votre texte "foo\nbar". Surtout si vous essayez de construire des chaînes de format multi-lignes comme $"V1 = {value1}\nV2 = {value2}\n". Si vous êtes construire du texte avec une concaténation de chaîne envisagez d'utiliser NewLine. Dans tous les cas, assurez-vous que les outils que vous utilisent comprennent la sortie comme vous le souhaitez et vous devrez peut-être par exemple toujours utiliser \r\n quelle que soit la plate-forme si l'éditeur de votre choix ne peut pas ouvrir correctement les fichiers autrement.

Notez que les méthodes WriteLine utilisent NewLine donc si vous prévoyez d'écrire du texte avec une de ces méthodes, évitez d'utiliser juste \n car le texte résultant peut contenir un mélange de \r\n et juste \n qui peut confondre certains outils et n'a absolument pas l'air soigné.

Pour le contexte historique, Voir différence entre \N et \r?

62
répondu Alexei Levenkov 2018-09-28 02:51:08

Un retour chariot \r déplace le curseur au début de la ligne courante. Une nouvelle ligne \n provoque une chute à la ligne suivante et peut-être le début de la ligne suivante; c'est la partie dépendante de la plate-forme qu'Alexei note ci-dessus (sur un système *nix \n vous donne à la fois un retour chariot et une nouvelle ligne, dans windows, ce n'est pas le cas)

Ce que vous utilisez dépend de ce que vous essayez de faire. Si je voulais faire une petite chose qui tourne sur une console, je ferais str = "|\r/\r-\r\\\r"; par exemple.

10
répondu Brian Roach 2011-03-08 02:46:02

Cela dépend de l'endroit où vous affichez le texte. Sur la console ou une zone de texte par exemple, \n suffira. Sur un RichTextBox, je pense que vous avez besoin des deux.

1
répondu kprobst 2011-03-08 02:43:27