枚举:一组有限的值,也是一种值类型。(作用:约束变量的值)
【例子】:星期仅包含星期一到星期天的7个特定值;性别仅包含男、女两个特定值;
【方法】:关键字enum
访问修饰符 enum 枚举名:基础类型
{
值列表
}
【注意】:
1、枚举声明可以显式地声明 byte、sbyte、short、ushort、int、uint、long 或 ulong 类型作为对应的基础类型。没有显式地声明基础类型的枚举声明意味着所对应的基础类型是 int。
2、任意两个枚举成员不能具有相同的名称。
3、每个枚举成员的常数值必须在该枚举的基础类型的范围之内。
4、在枚举类型中声明的第一个枚举成员它的默值为零。 以后的枚举成员值是将前一个枚举成员(按照文本顺序)的值加 1 得到的。这样增加后的值必须在该基础类型可表示的值的范围内;否则,会出现编译时错误。
【例子】: public enum TimeofDay:uint
{
Morning,
Afternoon,
Evening
}
【结果】:Morning的值为0,Afternoon的值为1,Evening的值为2。
5、允许多个枚举成员有相同的值. (枚举元素可以重写默认的初始值)
没有显示赋值的枚举成员的值,总是前一个枚举成员的值+1.
【例子】:public enum Number
{
a=1,
b,
c=1,
d
}
【结果】:b的值为2,d的值为2.
注意:以上枚举值都不能超过它的基础类型范围。否则会报错。
6、基础类型不能隐式转换为枚举类型
枚举类型也不能隐式转换为基础类型
【例子】:int i=Number.a;//错误,要强制类型转换(int)Number.a
Number n;
n=2 //错误,要强制类型转换(Number)2
7、枚举的引用:
枚举名.值
8、枚举中不能定义方法和属性
9、枚举与类同级。枚举本身可以有修饰符,但枚举的成员始终是公共的,不能有访问修饰符。枚举本身的修饰符仅能使用public和internal。
更多关于枚举:【转载文链接】