В чем разница между двумя, если они есть (относительно .Net)?Разница между " n" и Environment.NewLine
ответ
В зависимости от платформы. В Windows это «\ r \ n».
Из MSDN:
строка, содержащая "\ г \ п" для не-Unix платформ, или строка , содержащих "\ N" для Unix платформ.
Environment.NewLine будет выдавать «\ r \ n» при работе в Windows. Если вы создаете строки для сред, основанных на Unix, вы не хотите «\ r».
Environment.NewLine
возвращает символ новой строки для соответствующей платформы, в которой ваш код работает
вы найдете это очень полезно при развертывании кода в Linux на Mono рамках
Как уже упоминалось, Environment.NewLine
возвращает конкретную платформу строки для начала новой строки, которая должна быть:
"\r\n"
(\ u000d \ u000A) для ОС Windows"\n"
(\ u000A) для Unix"\r"
(\ u000d) для Mac (если существует такая реализация)
Обратите внимание, что при записи в консоли, Environment.NewLine не является строго необходимым. Консольный поток переводит "\n"
в соответствующую последовательность новой строки, если это необходимо.
Реализация Mac существует. Просто Моно. Бежит на что угодно. – Dykam
Просто записка, которая была бы старыми маками; новые (OSX) macs используют '\ n' –
@ Dykam, да, но он работает очень медленно, как на моем HP48gx – cod3monk3y
У вас могут возникнуть проблемы при попытке отображения многострочного сообщения, разделенного «\ r \ n».
Это всегда хорошая практика, чтобы делать вещи стандартным способом, а также использовать Environment.NewLine
Точная реализация Environment.NewLine
из исходного кода:
Реализация в .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";
}
}
Реализация в.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 (в System.Private.CoreLib
)
public static string NewLine => "\r\n";
source (в System.Runtime.Extensions
)
Кто-нибудь еще ожидал такого простого кода? : D – developerbmw
Исходный код никогда не лежит :) – aloisdg
yeah :) По какой-то причине я ожидал, что реализация .NET станет некоторой сложной функцией – developerbmw
- 1. C# \ n, \ r \ n или Environment.NewLine
- 2. Разница между .equals (N) и == N
- 3. Разница между \ n и CR
- 4. Разница между \ n и endl?
- 5. Разница между n = 0 и n = n - n
- 6. Какая разница между while (n--) и while (n = n-1)?
- 7. Разница между элементами N-формата n. Python
- 8. Разница между \ n и \ r в ожидании?
- 9. Разница между slurm sbatch -n и -c
- 10. В чем разница между «$^N» и «$ +»?
- 11. Разница Mpiexec между -n и -np?
- 12. Есть ли разница между унарными и n -
- 13. В чем разница между \ n и \ r?
- 14. В чем разница между \ r и \ n?
- 15. Минимальная разница между n элементами
- 16. В чем разница между \ n и \ r \ n?
- 17. В чем разница между alloca (n) и char x [n]?
- 18. В чем разница между x.pow (n) и pow (x, n)?
- 19. Разница между массивом (n) и массивом (n). Заполнить?
- 20. Разница между \ n и \ r \ n в python
- 21. разница между полукоксом [N] и полукоксом (&) [N] в списке параметров
- 22. В чем разница между `new Array (n)` и `Array (n)`
- 23. В чем разница между «const Node & n» и «Node & n»?
- 24. Environment.Newline и заменить
- 25. Regex - разница в \\ n и \ n
- 26. Разница между O (n) и O (log (n)) - что лучше и что именно O (log (n))?
- 27. Расщепление Environment.NewLine не работает
- 28. Как разделить Environment.NewLine?
- 29. Разница между точным жадным/неохотным X {n}?
- 30. Разница в использовании '\ n' и "\ n"
Какие UNIX платформы .NET делает запуск в Microsoft поместить в свой документ? (Я имею в виду, часть из Mono.) – Jack
@Jack Вы можете написать файл, который будет открыт в платформе Unix. Или отправить текст в пакет, который будет получен на платформе unix. И через несколько месяцев .net будет работать на платформах Unix. Он уже начался –