【问题标题】:Does VB.NET have a multi-line string declaration syntax equivalent to c#? [duplicate]VB.NET 是否有与 c# 等效的多行字符串声明语法? [复制]
【发布时间】:2012-08-10 21:16:23
【问题描述】:

可能重复:
Multiline strings in VB.NET

在c#中,你可以都是这样的:

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

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

【问题讨论】:

  • 在 VB.NET 14 中,您现在可以执行 String Interpolation - 所以:dim multiline = $"Multiliine String!"
  • @LukeTO'Brien 实际上在新的 VB 中你甚至不需要插值。

标签: c# vb.net


【解决方案1】:

编辑: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

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

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

【讨论】:

【解决方案2】:

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

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

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

【讨论】:

    【解决方案3】:

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

    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
    

    【讨论】:

    • 很遗憾,这个解决方案仍然不能满足我最初对I'd like to be able to paste multi-line text in between two double quotes 的要求。要再次将这个字符串数组组合在一起,我仍然必须依赖某种形式的连接,无论是在VbCrLf 处加入数组还是在循环中使用&amp;=。不过,谢谢。
    【解决方案4】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-17
      • 1970-01-01
      • 1970-01-01
      • 2010-11-30
      • 2016-04-25
      • 1970-01-01
      相关资源
      最近更新 更多