vb.net – 如何在Visual Basic .NET中指定长字符串文字?

有没有办法在Visual Basic源中方便地存储长字符串文字
我正在用–help printout编写一个控制台应用程序让我们说20行.

最受欢迎的是在我可以管理的源代码中的原始文本区域
输出文字1:1.许多语言都提供HEREDOC功能.在VB中,我找不到它.
但也许这可以通过LINQ(XML)以某种方式欺骗?

提前感谢您提供的好建议!

更新:

在VB.NET 14中,随Visual Studio 2015,all string literals support multiple lines一起提供.在VB.NET 14中,所有字符串文字都像C#中的逐字字符串文字一样工作.例如:

Dim longString = "line 1
line 2
line 3"

原答案:

c#使用@符号(称为逐字字符串)有一个方便的多行字符串文字语法,但不幸的是VB.NET没有直接等效的(这不再是真的 – 请参阅上面的更新).但是,还有其他几种选择,您仍然可以找到帮助.

选项1:简单连接

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"

选项2:字符串生成

Dim builder As New StringBuilder()
builder.AppendLine("line 1")
builder.AppendLine("line 2")
builder.AppendLine("line 3")
Dim longString As String = builder.ToString()

选项3:XML

Dim longString As String = <x>line 1
line 2
line 3</x>.Value

选项4:数组

Dim longString As String = String.Join(Environment.NewLine,{
    "line 1","line 2","line 3"})

其他选择

您可能还想考虑其他替代方案.例如,如果你真的希望它是代码中的文字,你可以在一个小的c#字符串文字库中进行,你可以使用@语法.或者,您可能认为在文字中使用它并不是必需的,将文本存储为字符串资源是可以接受的.或者,您也可以选择将字符串存储在外部数据文件中并在运行时加载它.

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...