2 c# types casting object type-conversion
我有一个枚举:
public enum MyEnum
{
EnumValue1,
EnumValue2,
}
Run Code Online (Sandbox Code Playgroud)
假设我有一个我想检查作为MyEnum对象的对象,我得到第一行的编译时错误:
var myEnumValue = enumObject as MyEnum;
if(myEnumValue != null)
{
...
}
Run Code Online (Sandbox Code Playgroud)
但我可以做到以下几点:
var myEnumValue = (MyEnum)enumObject;
Run Code Online (Sandbox Code Playgroud)
(但这可能引发例外)
所以我必须使用:
if(enumObject is MyEnum)
{
//and then assign enumObject to a MyEnum object
}
Run Code Online (Sandbox Code Playgroud)
代替.
题
为什么在as这里使用不允许但使用铸造或使用is?