gpt4 book ai didi

vb.net - 罗斯林错误?在非共享成员上,我收到错误,我正在使用 'shared member initializer'

转载 作者:行者123 更新时间:2023-12-04 21:12:24 26 4
gpt4 key购买 nike

有以下简单的代码:

Class A

Private value As Integer = 1

Sub Action(Optional param1 As Integer = value)
End Sub

End Class

Visual Studio 提示默认值 ( value ) 并出现错误 BC30369 :

Cannot refer to an instance member of a class from within a shared method or shared member initializer without an explicit instance of the class.



对于这种情况,这真的是正确的错误吗?方法不共享。

在 Visual Studio 2012 或 2013 中,同样情况下的错误是

Constant expression is required.



什么绝对有道理。

最佳答案

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

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

Constant expression is required.



因为除了常量之外什么都不能放入默认值 可选 条款,检查上述 BC30059 (“常量表达式是必需的。”)显然应该比 的检查“更早”。 BC30369 (显示在问题中)。

我创建了 bug report at Microsoft Connect .

关于vb.net - 罗斯林错误?在非共享成员上,我收到错误,我正在使用 'shared member initializer',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31902999/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com