Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

End-of-line identifier in VB.NET?

Tags:

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

There are many choices:

  • vbCrLf
  • vbNewLine (apparently an alias of vbCrLf)
  • ControlChars.CrLf
  • ControlChars.NewLine
  • Environment.NewLine
  • A static member in some C# class in the application (requires mixed-language solution): public static string LINEEND = "\r\n";
  • Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) (generated by the Visual Studio designer, at least Visual Basic 2005 Express Edition, for a TextBox with property Multiline set to True when Shift + Return is used while editing property Text.)

What is best practice?

like image 476
Peter Mortensen Avatar asked Sep 09 '09 12:09

Peter Mortensen


People also ask

What is End of statement in VB?

The End statement stops code execution abruptly, and does not invoke the Dispose or Finalize method, or any other Visual Basic code.

What is identifier in VB net?

An identifier is a name used to identify a class, variable, function, or any other user-defined item. The basic rules for naming classes in VB.Net are as follows − A name must begin with a letter that could be followed by a sequence of letters, digits (0 - 9) or underscore.

What is vbCrLf in VB net?

vbCrLf[^] is a hard coded Carriage Return (CR, moves the cursor to the left hand edge of the current line) and a Line Feed (LF, moves the cursor down one line, normally staying in the same column).


2 Answers

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.
like image 164
Noldorin Avatar answered Nov 06 '22 21:11

Noldorin


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

like image 34
Aamir Avatar answered Nov 06 '22 21:11

Aamir