首页 > 代码库 > 枚举类型和位标志

枚举类型和位标志

一、枚举类型

编译枚举时,C#编译器把每个符号转换成类型的一个常量字段。例如将Color枚举类型看成以下代码

    //编译枚举时,c#编译器把每个符号转化成类型的一个常量字段
    internal struct Color : System.Enum
    {
        //以下一些公共常量,它们定义了Color的符号和值
        public const Color White = (Color) 0;
        public const Color Red = (Color) 1;
        //以下是一个公共实例字段,包含Color变量的值
        //不能写代码来直接引用该字段
        public Int32 value_;
    }

简单的说,枚举是一个结构,其中定义了一组常量字段和一个实例字段。常量字段会嵌入程序集的元数据中,并可以通过反射来访问

 //返回用于容纳一个枚举类型的基础类型
            //System.Int32
            Console.WriteLine(Enum.GetUnderlyingType(typeof (ConsoleColor)));

 

枚举类型和位标志