枚举

  枚举的概念:
    枚举类型在C#或C++,java,VB等一些计算机编程语言中是一种基本数据类型而不是构造数据类型,它用于声明一组命名的常数。

  枚举的使用场景:
    当一个变量有几种可能的取值时,可以将它定义为枚举类型(人的性别只有两种可能取值,星期只有七种可能取值)。提高代码维护性,确保变量合法,提高代码可读性。

  定义枚举规则
    Ø 枚举定义时可以声明其基础类型,默认为int类型。
    Ø 枚举成员是枚举类型的命名常量,任意两个枚举常量不能具有同样的名称符号,但是可以具有相同的关联值。
    Ø 枚举成员会显式或者隐式与整数值相关联。
    Ø 枚举成员可以自由引用其他成员的设定值,但是一定注意避免循环定义。
    Ø 枚举是一种特殊的值类型,不能定义任何的属性、方法和事件。
    Ø 枚举类型是值类型,可以直接通过赋值进行实例化。

  通过查看IL代码理解枚举
    掌握C#反编译软件,查看IL代码,自定义枚举继承Enum类型,并且编译器自动为各个成员映射一个常数值,默认从0开始,逐个加1,因此,在本质上枚举就是一个常数集合,各个成员常量相当于类的
  静态字段。

  System.Enum类:
    所有枚举类型都隐式地继承System.Enum类型,System.Enum类型是继承自System.ValueType类型唯一不为值类型的引用类型。
    System.Enum类型是引用类型,并且是一个抽象类。
    System.Enum类型继承自 System.ValueType类型,而 ValueType类型是一切值类型的根类,但是显然 System.Enum并非值类型,这是 ValueType唯一的特例。
    System.Enum类型实现了 IComparable、IFormattable和 IConvertible接口,因此枚举类型可以与这三个接口实现类型转换。
  枚举常用方法:
    Ø GetName:在指定枚举中检索具有指定值的常数的名称
    Ø GetNames:检索指定枚举中常数名称的数组
    Ø GetTypeCode:返回此实例的基础 TypeCode
    Ø GetUnderlyingType:回指定枚举的基础类型
    Ø GetValues:索指定枚举中常数值的数组
    Ø Parse:将一个或多个枚举常数的名称或数字值的字符串表示转换成等效的枚举对象。 一个参数指定该操作是否不区分大小写

posted @ 2019-07-09 10:19  alaik  阅读(166)  评论(0编辑  收藏  举报