一个Roslyn的bug?在非共享成员上,我收到错误,我正在使用'共享成员初始化程序'

时间:2015-08-09 09:58:23

标签: vb.net visual-studio compiler-errors visual-studio-2015 roslyn

有以下简单的代码:

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中,同一案例中的错误是

  

需要常量表达式。

绝对有道理。

1 个答案:

答案 0 :(得分:2)

经过进一步的研究后,我认为编译器检查的顺序存在问题。

如果我更改了代码,使value成员 Shared ,我会得到正确的结果:错误 BC30059

  

需要常量表达式。

由于除了常量之外的任何内容都不能置于可选子句的默认值中,因此请检查上面的 BC30059 (“需要使用常量表达式”。)早于“检查 BC30369 (显示有问题)。

我创建了bug report at Microsoft Connect