7

可能重复:
VB.NET 中的多行字符串

在 c# 中,你可以像这样:

字符串 s = @"你好
那里
先生”;

VB.NET 是否有类似的东西不涉及字符串连接?我希望能够在两个双引号之间粘贴多行文本。不知何故,我不相信 VB.NET 支持这一点。

4

4 回答 4

15

编辑:VS2015 以后

您现在可以在 VS2015 中使用多行字符串,如下所示:

Dim text as String = "
This
Is
Multiline
Text!"

VB .NET 中没有多行字符串文字 - 您可以获得的最接近的东西(不使用 LINQ)是带有连接的多行语句。

在 VS2010 之前:

Dim x = "some string" & vbCrlf & _
        "the rest of the string"

2010年后:

Dim x = "some string" & vbCrlf &
        "the rest of the string"

XML/LINQ 技巧是:

Imports System.Core
Imports System.XML
Imports System.XML.Linq

Dim x As String = <a>Some code
and stuff</a>.Value

<a></a>但是由于 XML 语义,这限制了您可以在块内放置的字符。如果您需要使用特殊字符将文本包装在标准CDATA块中:

Dim x As String = <a><![CDATA[Some code
& stuff]]></a>.Value
于 2012-08-14T14:41:24.747 回答
5

不,但您可以使用这样的 xml 技巧:

Dim s As String = <a>hello
there
mister</a>.Value

或将您的字符串放入项目资源中。

于 2012-08-14T14:40:10.093 回答
2

我不知道这是否是最好的方法,但我认为没有等效的运算符。

Dim myString As String =
"Hello" & Environment.NewLine & "there" & Environment.NewLine & "mister"

我认为Environement.NewLine根据操作系统需要正确的换行符。

编辑:我刚刚读到您想直接在代码中插入多行文本,所以还有另一种可能的解决方案:

您仍然必须使用字符串引号和逗号,但在这里

    Dim myList as new List(of String) (new String(){
        "Hello",
        "there",
        "mister"
    })

    Dim result as String

    For Each bob as String In myList
        result += bob & Environment.NewLine
    next
于 2012-08-14T14:40:09.983 回答
0

这是 MSDN 推荐的 http://msdn.microsoft.com/en-us/library/5chcthbw(v=vs.80).aspx

MyString = "这是我的字符串的第一行。" & VbCrLf & _ "这是我的字符串的第二行。" & VbCrLf & _ "这是我的字符串的第三行。"

于 2012-08-14T14:40:52.503 回答