这可能非常明显,我可能有点迟钝。在C#中,我可以这样做:
string = @"this is
some preformatted
text";
我该如何在VB中实现这个功能?
这没有。
在C#中,你可以像这样做:"This ends in a new line\n.",但在VB中没有这个概念,你有预定义的变量来处理换行符,如"This ends in a new line" & vbNewLine。
因此,在VB中没有字符串字面量(@"something\n"),因为它会被字面解释。
VB .NET的问题是语句在行末被视为终止,所以你不能这样做。
Dim _someString as String = "Look at me
I've wrapped my string
on multiple lines"
你必须在每一行结束字符串并使用下划线表示你想继续语句,这将导致你需要做类似于以下的事情:Dim _someString as String = "Look at me " & vbNewLine &_
"*** add indentation here *** I've wrapped my string " & vbNewLine &_
vbTab & " on multiple lines" '<- alternate way to indent
Dim text As String = String.Format("this is {0} some preformatted {0} text", Environment.Newline)
这比这个更易读
Dim text As String = "this is" & Environment.NewLine _
& " some preformatted" & Environment.NewLine _
& " text"
我认为您无法在VB中完成此操作。您需要执行以下操作:
Dim text As String = "this is" & Environment.NewLine _
& " some preformatted" & Environment.NewLine _
& " text"
编辑:根据评论建议,用Environment.NewLine替换了VB特定的vbNewLine。
Dim mystring = <string>this is
some preformatted
text</string>.Value
VB在字符串操作方面较弱。没有预格式化或内联转义字符。任何特殊字符都需要附加到字符串中。
你可能想尝试Alex Papadimoulis的 "Smart Paster" 插件。它可以让你将一个字符串作为 StringBuilder 粘贴到 C# 或 VB 代码中。