Enumerations in C# and .NET are value types with a set of
related named constants. Using enumerations often results in more readable
code, and can help to ensure developers choose appropriate values by limiting
possible options to those defined in the enum. However, when the things
represented by the enum start to require additional behavior, it is often best
to move beyond the enum and start using classes instead.