有没有办法在Visual Basic源中方便地存储长字符串文字?我正在编写一个--help打印输出的控制台应用程序让我们说20行.
最受欢迎的是在源代码中的原始文本区域,我可以管理输出文本1:1.许多语言都提供HEREDOC功能.在VB中,我找不到它.但也许这可以通过LINQ(XML)以某种方式欺骗?
提前感谢您提供的好建议!
Ste*_*art 11
在Visual Studio 2015附带的VB.NET 14中,所有字符串文字都支持多行.在VB.NET 14中,所有字符串文字都像C#中的逐字字符串文字一样工作.例如:
Dim longString = "line 1
line 2
line 3"
Run Code Online (Sandbox Code Playgroud)
c#有一个方便的多行字符串文字语法使用@符号(称为逐字字符串),但不幸的是VB.NET没有直接等效的(这不再是真的 - 请参阅上面的更新).但是,还有其他几种选择,您仍然可以找到帮助.
Dim longString As String =
"line 1" & Environment.NewLine &
"line 2" & Environment.NewLine &
"line 3"
Run Code Online (Sandbox Code Playgroud)
或者较少的.NET纯粹主义者可以选择:
Dim longString As String =
"line 1" & vbCrLf &
"line 2" & vbCrLf &
"line 3"
Run Code Online (Sandbox Code Playgroud)
Dim builder As New StringBuilder()
builder.AppendLine("line 1")
builder.AppendLine("line 2")
builder.AppendLine("line 3")
Dim longString As String = builder.ToString()
Run Code Online (Sandbox Code Playgroud)
Dim longString As String = <x>line 1
line 2
line 3</x>.Value
Run Code Online (Sandbox Code Playgroud)
Dim longString As String = String.Join(Environment.NewLine, {
"line 1",
"line 2",
"line 3"})
Run Code Online (Sandbox Code Playgroud)
您可能还想考虑其他替代方案.例如,如果你真的希望它是代码中的文字,你可以在一个小的c#字符串文字库中完成它,你可以使用它的@语法.或者,您可能认为在文字中使用它并不是必需的,将文本存储为字符串资源是可以接受的.或者,您也可以选择将字符串存储在外部数据文件中并在运行时加载它.