有没有办法在 Visual Basic 源代码中方便地存储长字符串文字?我正在编写一个带有--help
打印输出的控制台应用程序,比如说 20 行。
最受欢迎的是在源代码中的某个地方有原始文本区域,我可以在其中管理输出文本 1:1。许多语言提供 HEREDOC 功能。在VB中,我找不到它。但也许这可以通过 LINQ (XML) 以某种方式被欺骗?
提前感谢您的好提示!
有没有办法在 Visual Basic 源代码中方便地存储长字符串文字?我正在编写一个带有--help
打印输出的控制台应用程序,比如说 20 行。
最受欢迎的是在源代码中的某个地方有原始文本区域,我可以在其中管理输出文本 1:1。许多语言提供 HEREDOC 功能。在VB中,我找不到它。但也许这可以通过 LINQ (XML) 以某种方式被欺骗?
提前感谢您的好提示!
在 Visual Studio 2015 附带的 VB.NET 14 中,所有字符串文字都支持多行。在 VB.NET 14 中,所有字符串文字都像C# 中的逐字字符串文字一样工作。例如:
Dim longString = "line 1
line 2
line 3"
@
c# 有一个方便的使用符号的多行字符串文字语法(称为逐字字符串),但不幸的是 VB.NET 没有直接等效的语法(这不再是真的——请参阅上面的更新)。但是,还有其他几个选项可能对您有所帮助。
Dim longString As String =
"line 1" & Environment.NewLine &
"line 2" & Environment.NewLine &
"line 3"
或者较少的 .NET 纯粹主义者可能会选择:
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"})
您可能还想考虑其他替代方案。例如,如果您真的希望它成为代码中的文字,您可以在一个小的 c# 字符串文字库中使用该@
语法。或者,您可能决定将它放在文字中并不是真正必要的,并且将文本存储为字符串资源是可以接受的。或者,您也可以选择将字符串存储在外部数据文件中并在运行时加载它。
您也可以简单地使用文本资源(项目 -> 属性 -> 资源)并通过My.Resources.NameOfTheResource
.
在 VB.net 中,您只需在字符串文字的末尾写上“& _”即可拥有多行字符串。