Enums can have unexpected values C# with Example



Enums can have unexpected values C# with Example

Since an enum can be cast to and from its underlying integral type, the value may fall outside the range of values 
given in the definition of the enum type. 
Although the below enum type DaysOfWeek only has 7 defined values, it can still hold any int value. 
public enum DaysOfWeek 
{ 
Monday = 1, 
Tuesday = 2, 
Wednesday = 3, 
Thursday = 4, 
Friday = 5, 
Saturday = 6, 
Sunday = 7 
} 
DaysOfWeek d = (DaysOfWeek)31; 
Console.WriteLine(d); //  prints 31 
DaysOFWeek s = DaysOfWeek.Sunday; 
s++; // No error 
There is currently no way to define an enum which does not have this behavior. 
However, undefined enum values can be detected by using the method Enum.IsDefined. For example, 
DaysOfWeek d = (DaysOfWeek)31; 
Console.WriteLine(Enum.IsDefined(typeof(DaysOfWeek),d)); // prints False 

0 Comment's

Comment Form

Submit Comment