【发布时间】:2013-11-04 10:52:29
【问题描述】:
我有一个枚举:
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,但可以强制转换或使用is?
【问题讨论】:
-
as表示:如果可能,请强制转换,否则返回null。null不是枚举的有效值。不过你可以使用MyEnum?。
标签: c# object types casting type-conversion