2013-12-15 138 views
0

正如标题所暗示的,我最好在我的C#应用​​程序中使用\n\r\nSystem.Environment.NewLine换行符?C# n, r n或Environment.NewLine

我有一个控制台,WinForms和WPF应用程序,目前所有使用\n(在需要的地方),但在我的控制台应用程序中,我发现重定向CLi输出并在记事本中打开输出时,换行符不是正确认可。我可以改变这个应用程序的行为,但我正在寻求那些始终使用特定方法的人的建议,以及为什么。

干杯!

更新:

所以,普遍的共识是,使用System.Environment.NewLine除非特定要求产生这就需要\n(UNIX/OS X),\r(OS 9)或\r\n(Windows)中

感谢所有和抱歉关于dup!

+0

这取决于您计划重新读取您的写入的平台。然而,除非具体要求,我总是会去环境.NewLine – Steve

+0

良好的阅读差异[这里](http://www.dotnetperls.com/newline), –

+0

@OndrejJanacek我确实搜索SO和谷歌,但必须以某种方式撇去或只是简单地错过了它;我不能相信我错过了这么明显的出血:( – SmithPlatts

回答

7

更好地使用Environment.NewLine,因为\r\n是平台相关的。

\ n是Unix下,\ r是苹果,\ r \ n是的Windows

Environment.NewLine将返回上述任何基于该操作系统上。

+1

其中“Mac”表示Mac OS 9或之前.. [Mac] OS X是“Unix” – user2864740

+1

@ user2864740您的AccessDenied答案的小增编是将其标记为答案的内容;欢呼声! – SmithPlatts

1

它会一直,除非你有意写一个'外国'文件,最好使用Environment.NewLine - 这就是它的目的。正如你发现的,有时候你可以逃避其他事情,有时你不能。

编写读取文本文件的代码非常容易,因此它并不关心\ n和\ r用于结束行的组合,但正如您发现的那样,记事本对此很严格。

+0

这一切都来自完全无知,因为我实际上并不知道“ NewLine'直到今天:/(对其他语言的.NET仍然有点新鲜);欢呼的答案! – SmithPlatts

相关问题