我有一个枚举:
public enum MyEnum
{
EnumValue1,
EnumValue2,
}
假设我有一个要检查的对象是否为 MyEnum 对象,我会在第一行得到一个编译时错误:
var myEnumValue = enumObject as MyEnum;
if(myEnumValue != null)
{
...
}
但我可以执行以下操作:
var myEnumValue = (MyEnum)enumObject;
(但这可能会引发异常)
所以我必须使用:
if(enumObject is MyEnum)
{
//and then assign enumObject to a MyEnum object
}
反而。
问题
为什么as
这里不允许使用,但 cast 或 usingis
是?