VB.NET中的行尾标识符?

时间:2009-09-09 12:03:29

标签: .net vb.net

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

有很多选择:

  • 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 +时属性 Multiline 设置为True的TextBox编辑属性文本时使用返回。)

什么是最佳做法?

3 个答案:

答案 0 :(得分:26)

我认为将Environment.NewLine用作新行标识符通常最有意义,原因如下:

  • 这是依赖于环境的只读变量。如果您恰好在Linux上运行程序(例如),那么该值将只是\n
  • vbCrLf是VB6及更早语言的遗留常量。此外,它不依赖于环境。
  • \r\n有同样的问题,不依赖于环境,也不能在VB.NET中很好地完成(你必须将变量赋给Chr(13) & Chr(10))。
  • 控件存在于Microsoft.VisualBasic命名空间中,有效地使其成为传统/向后兼容性选项,如vbCrLf。如果可能,请始终保持遗留代码。

答案 1 :(得分:6)

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

答案 2 :(得分:2)

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

  • ControlChars类,如果你总是使用VB和代码的其他部分使用VB标准(你如何声明变量?作为Integer或As Int32?Integer是VB,Int32在每种.NET语言之间都是通用的)。无论如何,就好像你已经结婚VB一样。否则..
  • 通用,语言和环境独立的环境(我的建议)

我认为最糟糕的是使用反向兼容功能,比如vbCrLf(或CInt()等)