VS 2010 IDE并没有因为试图通过带有用户定义枚举的方法参数传递Nothing而咆哮我真的很烦我.相反,它将0传递给方法.c#永远不会允许这个.是否有一些我可以添加的模块级修饰符option strict
会强制IDE不允许这些类型的隐式转换?
可悲的是没有.
但是,您可以在跳过0
(或使用命名的占位符None
或类似的东西)时为枚举成员分配值,并至少在运行时处理此情况.
Sub Main
MyMethod(Nothing) ' throws Exception
End Sub
Sub MyMethod(e as MyEnum)
If e = 0 Then
Throw New Exception
End If
End Sub
Enum MyEnum
a=1
b=2
c=3
End Enum
Run Code Online (Sandbox Code Playgroud)