【问题标题】:C# \n, \r\n or Environment.NewLine [duplicate]C# \n、\r\n 或 Environment.NewLine [重复]
【发布时间】:2013-12-15 08:49:00
【问题描述】:

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

我有一个控制台、WinForms 和 WPF 应用程序,它们目前都使用 \n(如果需要),但在我的控制台应用程序中,我发现从 CLi 重定向输出并在记事本中打开输出时,换行符是没有被正确识别。我可以改变我对这个应用程序的行为,但我正在寻求那些一直使用特定方法的人的建议以及为什么。

干杯!

更新:

所以普遍的共识是使用System.Environment.NewLine,除非出现需要\n(Unix/OS X)、\r(OS 9)或\r\n(Windows)的特定要求

谢谢大家,对重复感到抱歉!

【问题讨论】:

  • 这取决于您打算在哪个平台重新阅读您的文章。但是,除非有特殊要求,否则我总是会选择 Environment.NewLine
  • 很好地了解差异here
  • @OndrejJanacek 我确实搜索过 SO 和 Google,但一定是略过或者只是错过了它;我不敢相信我错过了这么明显的东西:(
  • @Steve 为简洁的评论欢呼:)
  • @RohitVats 这很好地解释了几个不同的位;干杯!

标签: c# wpf newline lf


【解决方案1】:

最好使用Environment.NewLine,因为\r\n 依赖于平台。

\n 是 Unix,\r 是 Mac,\r\n 是 Windows

Environment.NewLine 将根据操作系统返回上述任何内容。

【讨论】:

  • 其中“Mac”表示 Mac OS 9 或之前的版本 .. [Mac] OS X 是“Unix”
  • @user2864740 您对 AccessDenied 答案的小补充就是将其标记为答案的原因;欢呼!
【解决方案2】:

除非您有意编写“外部”文件,否则最好使用 Environment.NewLine - 这就是它的用途。正如您所发现的,有时您可以逃避其他事情,有时却不能。

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

【讨论】:

  • 这一切都来自完全的无知,直到今天我才真正了解NewLine:/(对于其他语言的 .NET 来说仍然有些新鲜);为答案喝彩!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-04
  • 1970-01-01
  • 2011-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多