有以下简单的代码:
Class A
Private value As Integer = 1
Sub Action(Optional param1 As Integer = value)
End Sub
End Class
Visual Studio抱怨默认值(value
),错误 BC30369 :
如果没有类的显式实例,则无法在共享方法或共享成员初始值设定项中引用类的实例成员。
对于这种情况,这真的是错误的吗?该方法未分享。
在Visual Studio 2012或2013中,同一案例中的错误是
需要常量表达式。
绝对有道理。
答案 0 :(得分:2)
经过进一步的研究后,我认为编译器检查的顺序存在问题。
如果我更改了代码,使value
成员 Shared
,我会得到正确的结果:错误 BC30059
需要常量表达式。
由于除了常量之外的任何内容都不能置于可选子句的默认值中,因此请检查上面的 BC30059 (“需要使用常量表达式”。)早于“检查 BC30369 (显示有问题)。