Is there a way to conveniently store long string literal in Visual Basic source?
I\'m composing a console application with --help printout let\'s say 20 lines l
You can also simply use a text resource (Project -> Properties -> Resources) and access them in your code via My.Resources.NameOfTheResource.
In VB.NET 14, which comes with Visual Studio 2015, all string literals support multiple lines. In VB.NET 14, all string literals work like verbatim string literals in C#. For instance:
Dim longString = "line 1
line 2
line 3"
c# has a handy multi-line-string-literal syntax using the @ symbol (called verbatim strings), but unfortunately VB.NET does not have a direct equivalent to that (this is no longer true--see update above). There are several other options, however, that you may still find helpful.
Dim longString As String =
"line 1" & Environment.NewLine &
"line 2" & Environment.NewLine &
"line 3"
Or the less .NET purist may choose:
Dim longString As String =
"line 1" & vbCrLf &
"line 2" & vbCrLf &
"line 3"
Dim builder As New StringBuilder()
builder.AppendLine("line 1")
builder.AppendLine("line 2")
builder.AppendLine("line 3")
Dim longString As String = builder.ToString()
Dim longString As String = <x>line 1
line 2
line 3</x>.Value
Dim longString As String = String.Join(Environment.NewLine, {
"line 1",
"line 2",
"line 3"})
You may also want to consider other alternatives. For instance, if you really want it to be a literal in the code, you could do it in a small c# library of string literals where you could use the @ syntax. Or, you may decide that having it in a literal isn't really necessary and storing the text as a string resource would be acceptable. Or, you could also choose to store the string in an external data file and load it at run-time.
In VB.net you can simply write "& _" at the end of your string literal to have multi-line strings.