有没有办法在没有下划线字符的情况下跨越多行?
在诸如SQL语句之类的多行字符串中,尤其是LINQ查询,这真的很烦人.
除了更改线条时的丑陋和困难(不再排队),您不能在多行语句的中间使用注释.
我日常的个人地狱的例子.
dim results = from a in articles _ where a.articleID = 4 _ ' articleID - Nope, can't do this select a.articleName dim createArticle as string = _ "Create table article " & _ " (articleID int " & _ " ,articleName varchar(50) " & _ " )"
Booji Boy.. 41
不,你必须使用下划线,但我相信VB.NET 10将允许多行没有下划线,只要它不能弄清楚结尾应该在哪里.
不,你必须使用下划线,但我相信VB.NET 10将允许多行没有下划线,只要它不能弄清楚结尾应该在哪里.
对于大多数使用带有内部CDATA块的XML元素的多行字符串,更容易避免为简单的原始字符串数据转义任何内容.
Dim s as string =.Value
请注意,我已经看到很多人声明相同的格式,但没有包装""标签(只是CDATA块)但是视觉工作室自动格式化接缝以改变每行的前导空白.我认为这是由于Linq"X"对象背后的对象继承结构.CDATA不是"容器",外部块是继承自XContainer的XElement.
从VB.NET 10开始,许多语法元素均支持隐式行连续(请参见Visual Basic中的语句:在多行上继续执行语句)。串联运算符(&)在语法元素列表中,它们支持隐式的行连续。还支持穿插注释,因此您的第二个示例可以重写为:
dim createArticle as string = "Create table article " & " (articleID int " & ' Comment for articleID " ,articleName varchar(50) " & ' Comment for articleName " )"
隐式行连续也适用于查询运算符,但有一些限制:
查询运算符之前和之后(聚合,不同,从,分组依据,分组联接,联接,让,排序依据,选择,跳过,略过一遍,取,取当,何处,在,入,入,在,升序和降序) 。您不能在由多个关键字组成的查询运算符的关键字之间折行(Order By,群组加入,暂停并跳过)。
同样,允许穿插注释,因此您的第一个示例可以重写为:
dim results = from a in articles where a.articleID = 4 ' articleID - now perfectly legal select a.articleName