Peter Mortensen
Peter Mortensen

Reputation: 31586

End-of-line identifier in VB.NET?

What end-of-line identifier should I use (for example, for output to text files)?

There are many choices:

What is best practice?

Upvotes: 25

Views: 19378

Answers (3)

Noldorin
Noldorin

Reputation: 147340

I believe it generally makes most sense to use Environment.NewLine as the new-line identifier, for a number of reasons:

  • It is an environment-dependent read-only variable. If you happen to be running your program on Linux (for example), then the value will simply be \n.
  • vbCrLf is a legacy constant from the VB6 and earlier languages. Also, it's not environment-independent.
  • \r\n has the same issue of not being environment-dependent, and also can't be done nicely in VB.NET (you'd have to assign a variable to Chr(13) & Chr(10)).
  • Controls exists in the Microsoft.VisualBasic namespace, effectively making it a legacy/backwards-compatibility option, like vbCrLf. Always stay clear of legacy code if possible.

Upvotes: 28

ccalboni
ccalboni

Reputation: 12490

Depending on you programming style, you may choose:

  • ControlChars class, if you always use VB and other parts of your code use VB standards (how do you declare variables? As Integer or As Int32? Integer is VB, Int32 is common between every .NET language). Anyway, just if you have already married VB. Otherwise..
  • Environment for a generic, language and environment independend way (my suggestion)

I think the worst would be the use of retrocompatibility functions, like vbCrLf (or CInt() and so on)

Upvotes: 2

Aamir
Aamir

Reputation: 15566

Environment.NewLine simply because it is environment dependent and behaves differently on different platforms.

Upvotes: 6

Related Questions