В чем разница между двумя, если таковые имеются (по отношению к .Net)?
c#
.net
cross-platform
Прерак К
источник
источник
Environment.NewLine
есть,\r\n
но\n
ее еще называют «новая линия». Почему они просто не назвали последнее своим более известным названием «перевод строки» и не устранили путаницу? Они могли бы\l
также использовать .Точная реализация
Environment.NewLine
из исходного кода:Реализация в .NET 4.6.1:
источник
Реализация в .NET Core:
источник (в
System.Private.CoreLib
)источник (в
System.Runtime.Extensions
)источник
Как уже упоминалось,
Environment.NewLine
возвращает специфичную для платформы строку для начала новой строки, которая должна быть:"\r\n"
(\ u000D \ u000A) для Windows"\n"
(\ u000A) для Unix"\r"
(\ u000D) для Mac (если такая реализация существовала)Обратите внимание, что при записи в консоль Environment.NewLine не является строго обязательным. Поток консоли будет преобразован
"\n"
в соответствующую последовательность новой строки, если это необходимо.источник
\n
Environment.NewLine
вернет символ новой строки для соответствующей платформы, на которой работает ваш кодвы найдете это очень полезно при развертывании кода в Linux на Mono рамках
источник
Из документов ...
источник
Environment.NewLine выдаст «\ r \ n» при запуске в Windows. Если вы генерируете строки для сред на основе Unix, вам не нужен символ "\ r".
источник
Вы можете столкнуться с проблемами, когда попытаетесь отобразить многострочное сообщение, разделенное «\ r \ n».
Это всегда хорошая практика, чтобы делать вещи стандартным способом и использовать Environment.NewLine
источник