【问题标题】:End-of-line identifier in VB.NET?VB.NET 中的行尾标识符?
【发布时间】:2009-09-09 12:03:29
【问题描述】:

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

有很多选择:

  • vbCrLf
  • vbNewLine(显然是vbCrLf的别名)
  • ControlChars.CrLf
  • ControlChars.NewLine
  • Environment.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,用于在 Shift + Return时将 Multiline 属性设置为 True 的 TextBox > 在编辑属性 Text 时使用。)

什么是最佳实践?

【问题讨论】:

    标签: .net vb.net


    【解决方案1】:

    我认为使用Environment.NewLine 作为换行标识符通常最有意义,原因有很多:

    • 它是一个环境相关只读变量。如果你碰巧在 Linux 上运行你的程序(例如),那么值就是\n
    • vbCrLf 是 VB6 和更早语言的遗留常量。此外,它与环境无关。
    • \r\n 具有不依赖环境的相同问题,并且在 VB.NET 中也不能很好地完成(您必须将变量分配给 Chr(13) & Chr(10))。
    • 控件存在于Microsoft.VisualBasic 命名空间中,有效地使其成为遗留/向后兼容选项,如vbCrLf。如果可能,请始终远离遗留代码。

    【讨论】:

    • Environment.NewLine 不能(似乎)在常量表达式中工作。 vbNewLine 有(但我没有检查其他人)
    【解决方案2】:

    Environment.NewLine 仅仅是因为它依赖于环境并且在不同平台上的行为不同。

    【讨论】:

      【解决方案3】:

      根据你的编程风格,你可以选择:

      • ControlChars 类,如果您总是使用 VB 并且代码的其他部分使用 VB 标准(如何声明变量?作为 Integer 还是 As Int32?Integer 是 VB,Int32 在每种 .NET 语言之间都是通用的)。无论如何,只要你已经嫁给了VB。否则..
      • 通用、语言和环境独立方式的环境(我的建议)

      我认为最糟糕的是使用逆向兼容函数,例如 vbCrLf(或 CInt() 等)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-10-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多