.net - VB.NET 中的行尾标识符?

标签 .net vb.net

我应该使用什么行尾标识符(例如,用于输出到文本文件)?

有很多选择:

  • vbCrLf
  • vbNewLine(显然是 vbCrLf 的别名)
  • ControlChars.CrLf
  • ControlChars.NewLine
  • 环境.NewLine
  • 应用程序中某个 C# 类中的静态成员(需要混合语言解决方案):public static string LINEEND = "\r\n";
  • Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) (由 Visual Studio 设计器生成,至少 Visual Basic 2005 Express Edition,用于在编辑属性 Text 时使用 Shift + Return 时 Multiline 属性设置为 True 的 TextBox。)

  • 什么是最佳实践?

    最佳答案

    我相信使用 Environment.NewLine 通常最有意义。作为新行标识符,出于多种原因:

  • 这是一个 环境相关 只读变量。如果您碰巧在 Linux 上运行您的程序(例如),那么该值将简单地为 \n .
  • vbCrLf是来自 VB6 和更早语言的遗留常量。此外,它不是独立于环境的。
  • \r\n具有不依赖于环境的相同问题,并且在 VB.NET 中也不能很好地完成(您必须为 Chr(13) & Chr(10) 分配一个变量)。
  • 控件存在于 Microsoft.VisualBasic 中命名空间,有效地使其成为遗留/向后兼容选项,例如 vbCrLf .如果可能,请始终远离遗留代码。
  • 关于.net - VB.NET 中的行尾标识符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1399268/

    相关文章:

    c# - WPF 将图像添加到 Canvas 而不将它们添加为资源

    asp.net - WinForms 和 Asp 类库中的异常处理

    c# - 如何在 .net 中检索硬盘固件序列号?

    c# - 更改观察到的集合时防止自回调

    c# - 如何使异步事件连续运行?

    c# - 当另一个完成使用多线程时启动一个方法

    .net - Datagridview 中的方形填充复选框

    vb.net - 对于每个使用 linq 如何使用 else

    .net - TryCast 在 DirectCast 工作的地方失败 (.NET 4.0)

    c# - 为什么我不能在 Nancy 中注册自定义 JSON.Net 实现?