博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
正确使用Enum的FlagsAttribute
阅读量:5150 次
发布时间:2019-06-13

本文共 1026 字,大约阅读时间需要 3 分钟。

正确使用Enum的FlagsAttribute

FlagsAttribute 标志枚举对象的值可以包括多个枚举成员,每个成员代表枚举值中的一个位域

使用步骤

  1. 添加标记[Flags]
  2. 用 2 的幂(即 1、2、4、8 等)定义枚举常量,比如0,1,1<<1,1<<2,1<<3
  3. 标记[Flags]的枚举项之间可以进行NOT,OR,AND,XOR操作

例子1

[Flags]public enum DaysOfWeek{    Sunday = 1,    Monday = 1 << 1,    Tuesday = 1 << 2,    Wednesday = 1 << 3,    Thursday = 1 << 4,    Friday = 1 << 5,    Saturday = 1 << 6,} var workDays1 = DaysOfWeek.Monday | DaysOfWeek.Tuesday |  DaysOfWeek.Thursday | DaysOfWeek.Thursday | DaysOfWeek.Friday;  var workDays2 = DaysOfWeek.Friday | DaysOfWeek.Saturday | DaysOfWeek.Sunday; ~workDays1 //DaysOfWeek.Saturday,DaysOfWeek.Sunday workDays1 ^workDays2 //DaysOfWeek.Monday, DaysOfWeek.Tuesday,DaysOfWeek.Thursday, //DaysOfWeek.Thursday,DaysOfWeek.Saturday, DaysOfWeek.Sunday workDays1&DaysOfWeek.Monday //DaysOfWeek.Monday

例子2

//判断是否包含某项 //.net4.0新增 if (workDays1.HasFlag(DaysOfWeek.Monday)) {      //... } //4.0以前的版本 if ((workDays1 & DaysOfWeek.Monday) == DaysOfWeek.Monday) {      //... }

转载于:https://www.cnblogs.com/Mercurius/p/enum_flagsattribute.html

你可能感兴趣的文章
Objective-C语法之NSSortDescriptor
查看>>
使用CSS进行定位
查看>>
C语言 链队列基本操作
查看>>
OO学习总结与体会
查看>>
虚拟机长时间不关造成的问题
查看>>
toString和valueOf的区别
查看>>
C#操作Excel(创建、打开、读写、保存)几种方法的总结
查看>>
校门外的树2 contest 树状数组练习 T4
查看>>
JS及JQ使用JSONP实现跨域调用必应搜索
查看>>
面试整理:Python基础
查看>>
Python核心编程——多线程threading和队列
查看>>
三次数模总结一下
查看>>
Py之np.concatenate函数【转载】
查看>>
【NOIP模拟】matrix(简化矩阵)
查看>>
e.preventDefault()和e.stopPropagation()以及return false的作用和区别
查看>>
洛谷 1571 眼红的Medusa
查看>>
[HEOI2016/TJOI2016]树
查看>>
(转载)PHP中设置时区方法小结
查看>>
spring--百度百科
查看>>
关于Invoke和InvokeRequired
查看>>