public enum Animal
{
Dog = 1,
Cat = 2,
Cow = 3
}
int animalID = 4;
if ((Animal)animalID == Animal.Dog) // does not throw exception
AnimalID 无法转换为Animal
.
为什么我不明白InvalidCastException
当将枚举转换为整数失败时?
因为它不是无效的强制转换。
您正在铸造的价值是超出范围对于枚举(在本例中),但它不是无效的。
由于枚举的批准类型是 byte、sbyte、short、ushort、int、uint、long 或 ulong,因此从整数到枚举的强制转换是完全合法的。
来源 - MSDN http://msdn.microsoft.com/en-us/library/sbbt4032(v=VS.100).aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)