I've started to really like using C# and Java enums in my code for several reasons: They are much more type-safe than integers, strings, or sets of boolean flags. They lead to more readable code. It's more difficult to set an enum to an invalid value than an int or string. They make it easy to discover the allowed values for a variable or parameter. Everything I've read indicates that they perform

