【发布时间】:2023-03-27 09:02:02
【问题描述】:
是否可以禁止类的实例调用共享/静态方法?
例如:
我想允许这样做:
ClassName.MethodOne()
但我想禁止这样做:
Dim A As New ClassName
A.MethodOne()
这是可取的原因是,在这种情况下,如果实例可以调用该方法,则会在语义上产生混淆。
【问题讨论】:
标签: .net vb.net methods static shared
是否可以禁止类的实例调用共享/静态方法?
例如:
我想允许这样做:
ClassName.MethodOne()
但我想禁止这样做:
Dim A As New ClassName
A.MethodOne()
这是可取的原因是,在这种情况下,如果实例可以调用该方法,则会在语义上产生混淆。
【问题讨论】:
标签: .net vb.net methods static shared
不,这在 VB.Net 中是不可能的。上面的代码会发出警告(BC42025),但会成功编译。唯一困难的选择是将警告切换为错误,这将防止出现此问题。
【讨论】:
正如所说的,它是默认的警告。但是有可能将其提升为错误。转到 VB.net 项目的属性,然后是编译选项卡,然后是警告配置。在那里找到“实例变量访问共享成员”并将其设置为错误。现在它不会编译了。
【讨论】: