这可能非常明显,而且我很密集。在C#中,我可以这样做:
string = @"this is
some preformatted
text";
我如何在VB中执行此操作?
答案 0 :(得分:14)
没有一个。
在C#中你有能力做这样的事情“这以一个新的行结束\ n。”,但是在VB中没有这个的概念,你有预定义的变量来处理你喜欢的“这结束于新线“& vbNewLine
因此,字符串文字(@“something \ n”)没有意义,因为在VB中它无论如何都会按字面解释。
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
答案 1 :(得分:4)
像其他人说的那样,没有@运算符,所以如果你进行大量的字符串操作,请使用 String.Format
恕我直言,这个
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"
答案 2 :(得分:3)
我认为你不能在VB中做到这一点。你必须这样做:
Dim text As String = "this is" & Environment.NewLine _
& " some preformatted" & Environment.NewLine _
& " text"
编辑:正如评论中所建议的那样,用Environment.NewLine取代了VB特定的vbNewLine
答案 3 :(得分:2)
实际上你可以在vb.net中这样做。您使用称为XML Literals的东西。
Dim mystring = <string>this is
some preformatted
text</string>.Value
答案 4 :(得分:1)
VB对字符串操作很弱。没有预格式化或内联转义字符。任何特殊字符都需要附加到字符串中。
答案 5 :(得分:1)
您可能想尝试Alex Papadimoulis的“Smart Paster”加载项。它允许您将字符串粘贴到C#或VB代码中“作为StringBuilder”。