mir*_*lav 5 vb.net compiler-errors visual-studio roslyn visual-studio-2015
有以下简单的代码:
Class A
Private value As Integer = 1
Sub Action(Optional param1 As Integer = value)
End Sub
End Class
Run Code Online (Sandbox Code Playgroud)
Visual Studio抱怨默认值(value
),错误BC30369:
如果没有类的显式实例,则无法在共享方法或共享成员初始值设定项中引用类的实例成员.
对于这种情况,这真的是错误的吗?该方法不共享.
在Visual Studio 2012或2013中,同一情况下的错误是
需要常量表达式.
什么绝对有道理.
经过额外的研究,我认为编译器的检查顺序存在问题。
如果我更改代码,创建value
member Shared
,我会得到正确的结果:Error BC30059
需要常量表达式。
由于除了常量之外,任何内容都不能放入Optional子句的默认值中,因此对上述BC30059(“需要常量表达式”)的检查显然应该比对BC30369(如问题所示)的检查“更早”。
我在 Microsoft Connect 上创建了错误报告。
归档时间: |
|
查看次数: |
145 次 |
最近记录: |