c# - 为什么 Environment.NewLine = "\r\n"而字符串文字中的 "\n"功能相同?

标签 c# .net

在 C# 中,如果您执行类似 string newLine = Environment.NewLine; 的操作并检查 newLine 的值,您会发现它是 "\r\n”。但是,如果我做类似的事情;

  string[] test = new string[] { "one", "two", "three" };

  Console.WriteLine("With plain slash n:");
  Console.Write(String.Join("\n", test));
  Console.WriteLine("\nWith Environment.NewLine:");
  Console.Write(String.Join(Environment.NewLine, test));

输出在功能上是相同的。

为什么 Environment.NewLine 设置为 \r\n 而不是 \n?这不会使从字符串转换为字符数组变得更加困难吗?我还阅读了一些内容,这让我相信某些输入字段不会将 Environment.NewLine 计为两个字符,如果您的支持字段被限制为输入字段的长度,这可能会导致问题。有什么积极的理由吗?在这一点上它只是遗留问题吗?

最佳答案

Environment.NewLine 的作用是返回平台的换行符。大概对于 Linux 或 Unix 上的 .NET 框架的实现,它只会返回\n。

关于c# - 为什么 Environment.NewLine = "\r\n"而字符串文字中的 "\n"功能相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20622345/

相关文章:

c# - 是否有低级网络库来嗅探和更改网络流量?

c# - DataContract 运行时错误 - 类型 'myType' 无法序列化。我做错了什么?

c# - 将 View 模型 (DTO) 自动映射到模型(实体)的最佳实践

c# - 无法在 IE(9 和 10)中使用 radeditor 控件插入表格

.net - 如何使用 Dapr 订阅 Azure 应用程序配置中的更改

.NET - 浮点比较

c# - 合并集合保留顺序的最有效方法?

c# - 写入没有文件路径的流

c# - FormView ItemTemplate 中的 ASP.net 访问控制

.net - 在 Visual Studio 2012 中生成 XML 序列化程序集不起作用