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 long.
Most welcome would be to have raw text area somewhere in source code where I can manage output text 1:1. Many languages supply HEREDOC functionality. In the VB, I couldn't find it. But maybe this could be tricked somehow via LINQ (XML)?
Thank you for good tips in advance!
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With