Возврат каретки и подача строки ... оба необходимы в C#?
при вставке новой строки в строку, я обычно делал так:
str = "First linenSecond line";
В C#, это стандартная практика? Должен ли я также включать символ "возврат каретки ""r"? Есть ли разница между следующими, и если да, то каковы они?
str = "First linenSecond line";
str = "First linernSecond line";
Если использование как "возврата каретки", так и "подачи строки" является стандартной практикой, есть ли конкретный порядок и почему?
Примечание: я прочитал несколько других сообщений на SO, но не нашел ответа, специфичного для .NET / C#.
Edit: после тестирования небольшого приложения я не видел никакой разницы между "n " и "nr " или "rn".
3 ответов
System.Environment.NewLine
является константой, которую вы ищете -http://msdn.microsoft.com/en-us/library/system.environment.newline.aspx что обеспечит конкретную комбинацию среды, которую большинство программ на данной ОС будут рассматривать как "следующую строку текста".
на практике большинство текстовых инструментов рассматривают все варианты, которые включают \n
как "новая строка", и вы можете просто использовать ее в своем тексте "foo\nbar"
. Особенно, если вы пытаетесь построить строки многострочного формата, такие как $"V1 = {value1}\nV2 = {value2}\n"
. Если вы строите текст с конкатенацией строк, рассмотрите возможность использования NewLine
. В любом случае убедитесь, что инструменты вы используют понять вывод так, как вы хотите, и вам может понадобиться, например, всегда использовать \r\n
независимо от платформы, если редактор может не корректно открывать файлы в противном случае.
отметим, что WriteLine
способы применения NewLine
поэтому, если вы планируете писать текст с помощью одного из этих методов, избегайте использования только \n
в результате текст может содержать смесь \r\n
и просто \n
что может запутать некоторые инструменты и определенно не выглядит аккуратно.
для исторического фона см. разница между \n и \r?
возврат каретки \r
перемещает курсор в начало текущей строки. Новая строка \n
вызывает падение до следующей строки и возможно начало следующей строки; это зависимая от платформы часть, которую Алексей отмечает выше (в системе * nix \n
дает вам как возврат каретки, так и новую строку, в windows это не так)
то, что вы используете, зависит от того, что вы пытаетесь сделать. Если бы я хотел сделать маленькую вращающуюся вещь на консоли, я бы сделал str = "|\r/\r-\r\\r";
например.
Это зависит от того, где отображается текст. Например, на консоли или текстовом поле будет достаточно \n. На RichTextBox, я думаю, вам нужны оба.