The well known (or moderately known fact): C# enums can contain any value supported by its base type and not just the ones specified in the enum. Lets consider the following enum.
Monday = 1,
Tuesday = 2,
Wednesday = 3,
Thursday = 4,
Friday = 5,
Saturday = 6,
Sunday = 7
Even though the enum supports values from 1 to 7 you can do the following.
WeekDay day = (WeekDay)40;
This prints out 40 without any error.
Now comes the lesser known fact: C# 1.2 spec sez “An Implicit enumeration conversion permits the decimal-integer-literal 0 to be converted to enum-type”. This means the following is valid code
WeekDay day = 0;
Note that even though 0 is not supported it is implicitely casted to the enum!!! No idea why this is supported.