枚举类型和位标志

Posted *Hunter

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了枚举类型和位标志相关的知识,希望对你有一定的参考价值。

一、枚举类型

编译枚举时,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)));

 

以上是关于枚举类型和位标志的主要内容,如果未能解决你的问题,请参考以下文章

值类型取值范围与运算(&)或运算(|)非运算(~)异或运算(^)位运算和位枚举

15枚举类型和标志位

Linux C 编程学习第五天_数据类型标志

C# 基础 访问修饰符ref与out标志枚举等等

C#图解教程 第十一章 枚举

2基本类型数组和枚举类型——重拾Java