我有一個枚舉:爲什麼在檢查變量是枚舉值時不能使用'as'?
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'不是枚舉的有效值。不過你可以使用'MyEnum?'。 「 –