情况:
今天我注意到,在评论我的代码时,Enum内部的单行注释是可以的,但带有换行符的多行注释会抛出错误:
Enum内部无效
例如,以下作品:
Option Explicit
Public Enum testing
'My comment text
Value1 = 1
Value2 = 2
End Enum
Private Sub test()
MsgBox testing.Value1
End Sub
但是在下面将注释更改为多行,则失败:
Public Enum testing
'My comment _
text
Value1 = 1
Value2 = 2
End Enum
更具体地说,看起来线条延续字符的存在是我可以愉快地执行的问题:
Public Enum testing
'My comment
'text
Value1 = 1
Value2 = 2
End Enum
我在MSDN上查找了错误Invalid inside Enum:
并非所有类型在枚举定义中都有效。这个错误 有以下原因和解决方案:
您尝试将字符串或其他一些无效类型指定为值 一个Enum成员。用于指定枚举的常量表达式 成员必须评估为键入Long或其他枚举类型。
这并没有真正为我解释这个问题所以我找了一些明确的案例,你不能使用行继续字符,并在How to: Break and Combine Statements in Code (Visual Basic)中找到以下内容:
您无法使用续行字符继续发表评论。 编译器不会检查注释中的字符是否特殊 含义。对于多行注释,请重复注释符号(') 每一行。
现在,虽然更有经验的人可能会故意微笑,但我很惊讶地发现了这一点。我很幸福(a.k.a无知)多年来一直使用行继续进行多行注释而没有问题,例如。
Private Sub test()
'This is another multi _
line
End Sub
因此,对我来说,似乎编译器必须:
1)对行继续符的处理采用一些上下文敏感的逻辑,例如:在Sub
或Function
或Module
范围内可以,但在Enum
内则不行。
2)在某些部分进行更新,而不是在其他部分进行更新。
问题:
这种明显不一致的原因是什么,以及在很多情况下我似乎可以使用行继续字符进行评论的原因是什么?
其他参考资料: