基础知识---枚举

一、枚举的定义

枚举是一组命名整型常量。枚举类型是使用 enum 关键字声明的。

C# 枚举是值类型。换句话说,枚举包含自己的值,且不能继承或传递继承。

 二、枚举的声明

声明枚举的一般语法:

enum <enum_name>
{
    enumeration list
};

其中,

  • enum_name 指定枚举的类型名称。
  • enumeration list 是一个用逗号分隔的标识符列表。

枚举列表中的每个符号代表一个整数值,一个比它前面的符号大的整数值。默认情况下,第一个枚举符号的值是 0.例如:

enum Day { Sun, Mon, tue, Wed, thu, Fri, Sat };

在编译枚举类型时,会把每个符号转换成类型的一个常量字段很一个int32的公共实例字段,不够后者不能通过代码调用。

因为枚举的符号是一个常量字段,如果在不同的程序集引用,可能会出现一些版本问题,

每个枚举都有一个基础类型, 包含 byte,sbyte,short,ushort,uint,long ,ulong, 和int (最常用,C#默认的类型)

三、枚举的转换

枚举转换成整数

Day today = Day.Wed;
int dayNumber = (int)today;

枚举转换成字符串

Day today = Day.Wed;
string todayStr = today.ToString();

四、枚举的方法

枚举的主要三个方法: Enum.GetName() 、Enum.GetNames()、Enum.GetValues()

Day today = Day.Wed;
string name = Enum.GetName(typeof(Day), 3);
Enum.GetNames(typeof(Day))
Enum.GetValues(typeof(Day))

GetName:获取单个枚举的名称

GetNames:获取所有枚举的名称

GetValues:获取所有枚举的值

五、标志枚举(二进制枚举)

定义枚举时,添加Flags特性,之后便可以对这些值执行AND、OR、NOT、XOR按位运算

public enum MyEnum
{
    MyEnum1 = 1, //0x1
    MyEnum2 = 1 << 1, //0x2
    MyEnum3 = 1 << 2, //0x4
    MyEnum4 = 1 << 3, //0x8
    MyEnum5 = 1 << 4, //0x10
    MyEnum6 = 1 << 5, //0x20
    MyEnum7 = 1 << 6 //0x40
}

此时可以使用位移运算方便的获取多个枚举的组合变量:

MyEnum myEnum = MyEnum.MyEnum1 | MyEnum.MyEnum2;
myEnum |= myEnum | MyEnum.MyEnum3;

或在组合中删除其中一项枚举:

myEnum ^= MyEnum.MyEnum1;
myEnum &= ~MyEnum.MyEnum2;

需要判断是否包含某一枚举值时,可以使用以下方法判断:

(curMyEnum & MyEnum.Enum1) > 0

| 并集  &  交集  ^  差集

(0)

相关推荐

  • JVM-类加载

    JVM 类加载 JVM整个流程图 一个java文件被编译为class文件后,剩下的操作都交给jvm来执行,其中第一步就是将class文件加载到jvm,而这一步就是由类加载器来完成的 类加载的流程又分为 ...

  • 【竺】数据库笔记4——enum的使用

    当表里的某个字段,非0即1.类似状态一样,不存在第三种情况. 那么这样如何定义该字段呢? 字段名 enum('0','1');

  • 易学应用基础知识之八:《奇门遁甲》中十二地支的相互关系

    这一部分内容,我们来介绍关于十二地支的相互关系. 关于十二地支之间的相互关系,在其它传统预测学中的应用是比较广泛的,比如八字.六爻等.在奇门遁甲中,十二地支之间的各种相互关系并不是所有的关系都能用得上 ...

  • 事业单位公共基础知识:人文常识之楚辞

    在各种考试中,一般都会涉及一些人文常识的题目,考查方式主要以识记性为主,但由于考察内容涉及的知识范围较广.例如一些文学著作知识,对于很多考生来说部分题目还是比较难.现就文学著作中的楚辞的部分知识梳理如 ...

  • 88张PPT带你学习PLC基础知识,不看你就亏了!

    电气达人 电气人择一业,终一生! 13篇原创内容 公众号 电气达人 电气人择一业,终一生! 13篇原创内容 公众号 电气达人 电气人择一业,终一生! 13篇原创内容 公众号 电气达人 电气人择一业,终 ...

  • 运维必知必备!73页计算机基础知识,新手小白也能轻松读懂

    基础不牢,地动山摇! 新手在学习运维亦或是开发的时候,都要注重基础知识的积累,不能只想着学习实战知识,这样到中后期,容易造成对"高级知识点"的一知半解,以至于知其然,却不知其所以然 ...

  • 干货 | 冷油器基础知识

    一,什么是冷油器?冷油器是电力系统中汽轮机配套使用的透平油冷却设备,冷油器为光管表面式,采用循环水作为介质实现热交换,从而保证轴承入口油温达到规定值,确保机组正常运行. 编辑搜图请点击输入图片描述(最 ...

  • 公共基础知识:你所不知道的人文常识汇总

    人文常识在中国传统文化中浩如烟海,博大精深,如何在浩如烟海的人文中把握准考点所在,是非常困难的,但是在我们历年事业单位考察中均有个别题目与当年的重大时政新闻紧密相关.小编根据2020年以来的时政帮各位 ...

  • 人力资源的7个基础知识?

    什么是人力资源管理? 让我们从一个简短的定义开始,人力资源管理是管理人员以取得更好绩效的一种做法. 例如,如果您雇用某人从事某项业务,则是在寻找适合公司文化的人,因为与那些不适合公司文化的人相比,他们 ...

  • 社区考试公共基础知识:中国四大名关

    社区考试公共基础知识:中国四大名关

  • 社区考试公共基础知识:名医扁鹊

    社区考试公共基础知识:名医扁鹊