§13.2.2) is required to convert
between an enum type and an integral type, or between two enum types. The
set of values that an enum type
can take on is not limited by its enum members. In particular, any value of
the underlying type of an enum
can be cast to the enum type, and is a distinct valid value of that enum
Enum members have the type of their containing enum type (except within
other enum member initializers:
see §21.3). The value of an enum member declared in enum type E with
associated value v is (E)v.
The following operators can be used on values of enum types: ==, !=, <, >,
<=, >= (§14.9.5), + (§14.7.4),
- (§14.7.5), ^, &, | (§14.10.2), ~ (§14.6.4), ++, -- (§14.5.9 and §14.6.
5), and sizeof (§25.5.4).
Every enum type automatically derives from the class System.Enum (which, in
turn, derives from
System.ValueType and object). Thus, inherited methods and properties of
this class can be used on
values of an enum type.