枚举提供了一种便捷的方法来使用相关常数集并将常数值与名称相关联,具有类型安全、可读性高以及编译时检查等优点。但是枚举类型不能定义任何方法、属性或事件,只能通过扩展方法功能模拟向枚举类型添加方法。

尽管枚举提供了编译时检查,但对输入值的约束是有限的。例如,下面这个枚举有四个值,默认情况下是int类型。取值范围为0 ~ 3。