VB.NET是否具有与c#等效的多行字符串声明语法?

时间:2012-08-14 14:36:30

标签: c# vb.net

  

可能重复:
  Multiline strings in VB.NET

在c#中,你可以像:

string s = @"hello
there
mister";

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

4 个答案:

答案 0 :(得分:15)

编辑:VS2015 ONWARDS

你现在可以通过写这样的方式在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

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

Dim x As String = <a><![CDATA[Some code
& stuff]]></a>.Value

答案 1 :(得分:5)

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

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

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

答案 2 :(得分: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

答案 3 :(得分:0)

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

MyString =“这是我的字符串的第一行。” &安培; VbCrLf&amp; _            “这是我的第二行。” &安培; VbCrLf&amp; _            “这是我的第三行。”