Имеет ли VB.NET синтаксис объявления нескольких строк, эквивалентный С#?

Возможный дубликат:
Многострочные строки в VB.NET

В С# вы можете быть похожими:

string s = @"hello
there
mister";

Есть ли у VB.NET что-то подобное, не связанное с конкатенацией строк? Я хотел бы иметь возможность вставлять многострочный текст между двумя двойными кавычками. Почему-то я не верю, что VB.NET поддерживает это.

Ответ 1

В 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

Ответ 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 берет правильную линию, в зависимости от ОС.

EDIT: я только что прочитал, что вы хотите вставить текст многострочный непосредственно в код, так что есть еще одно возможное решение:

Вам нужно использовать строковые цитаты и запятые, но здесь

    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

Ответ 4

Это то, что MSDN рекомендует http://msdn.microsoft.com/en-us/library/5chcthbw(v=vs.80).aspx

MyString = "Это первая строка моей строки." и VbCrLf и _           "Это вторая строка моей строки". и VbCrLf и _           "Это третья строка моей строки".