VB.NET不允许在注释掉的行上继续行吗?

时间:2010-06-25 21:36:37

标签: vb.net syntax

我刚刚重构了一些编译错误,同时重构了一些遗留(因此是VB.NET)单元测试,我只想将其中一个示例输入注释到MBUnit:

<RowTest> _
'<Row("Something")> _
<Row("SomethingElse")> _

给出了:

Attribute specifier is not a complete statement. Use a line continuation to apply the 
attribute to the following statement.

它实际上是将空白/注释掉的行视为实际行吗?一般来说,当我抱怨VB.NET时,我先写道:“现在,我不想成为那个写语法的人,但是......”这似乎就是我不知道的那种情况之一回答,如果我是对的。但在这种情况下,我确实想知道答案。

2 个答案:

答案 0 :(得分:4)

是的,据我所知,问题是你的第一行继续添加注释掉的行作为第一行的一部分,然后注释掉的行上的行继续符号被忽略,因为它是一部分评论所以它最终成为:

<RowTest> '<Row("Something")> _  <-- this line continuation character is ignored since it's commented out.
<Row("SomethingElse")> _

支持这一点需要什么才能结束除换行符之外的注释,但因为它通常不是问题,我认为它会影响编译速度等因为它会使它必须解析所有评论我认为这不值得。

答案 1 :(得分:0)

我有一个.[Rem]扩展方法,允许就地表达“注释掉”流利的表达式。您可以创建[Rem]属性来执行相同的操作。

<Row> _
<[Rem]("<Row(""Something"")> _")> _
<RowTest("SomethingElse")> _
Sub Main

End Sub

' Define other methods and classes here
<AttributeUsage(AttributeTargets.All, AllowMultiple:=True)> _
Class [Rem]
    Inherits Attribute
    Public Sub New()
    End Sub
    Public Sub New(Comment As String)
    End Sub
End Class