public enum Animal
{
Dog = 1,
Cat = 2,
Cow = 3
}
int animalID = 4;
if ((Animal)animalID == Animal.Dog) // does not throw exception
animalID can't be casted to Animal
.
Why don't I get InvalidCastException
when casting enum to integer fails?
Because it's not an invalid cast.
The value you are casting is out of range for the enum (in this case) but it's not invalid.
As the approved types for an enum are byte, sbyte, short, ushort, int, uint, long, or ulong a cast from integer to enum is perfectly legal.
Source - MSDN
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With