枚举

枚举:一组有限的值,也是一种值类型。(作用:约束变量的值)

  【例子】:星期仅包含星期一到星期天的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。

更多关于枚举:【转载文链接

原文地址:https://www.cnblogs.com/pengyouqiang88/p/5114978.html