Syntax for enumerations is
ENUM [AS ]
MEMBER [ := ]
All enum types have an underlying data type, which is the actual data type of all of the
enumerator values. If not explicitly specified, the underlying data type is INT (System.Int32).
Allowable data types are any built-in integer numeric type except System.Char.
Allowable values are integer constants or any expression that can be completely resolved at compile-time.
All enumerations are .net value classes that inherit from the abstract System.Enum type
Enumerations are types and share the same namespace as all other types, therefore an enum
cannot have the same name as a class, structure, etc.
If an enum member has no initializer, its associated value is set implicitly, according to these rules:
- The first enum member has an associated value of zero
- Any enum member other than the first has an associated value of the preceeding member, plus one