星空网 > 软件开发 > ASP.net

[十万个为什么]__C#的Enum中Flags的用法

介绍

Flags关键字允许我们在使用.net 枚举变量时,使用多个组合值

 

使用演示

 

 

[十万个为什么]__C#的Enum中Flags的用法
 1     [Flags]
 2     enum WeekDays
 3     { 
 4         //注意: 这里不要将Sunday设置为0x0,至于为什么留给大家思考
 5         Monday = 0x1,
 6         Tuesday = 0x2,
 7         Wednesday = 0x4,
 8         Thursday = 0x8,
 9         Friday = 0x10,
10         Saturday = 0x20,
11         Sunday = 0x40
12     }
[十万个为什么]__C#的Enum中Flags的用法

      只需要在Enum上使用上[Flags]标签即可标记为可组合的枚举.下面是简单的用法:

 

 

[十万个为什么]__C#的Enum中Flags的用法
 1         static void TestEnumFlags()
 2         {
 3             /************Kingmoon Lab 之 enum flags 语法*********************/
 4             /*用'|'将各个枚举值分开即可*/
 5             WeekDays wds = WeekDays.Monday | WeekDays.Sunday | WeekDays.Tuesday;
 6             Console.WriteLine("我这3天要来大姨妈:"+wds);
 7             /* 我们来看看计算过程:
 8              * 或运算:
 9                  0000 0001 --星期一 0x1
10               或 0100 0000 --星期六 0x20
11               或 0000 0010 --星期二 0x2
12              =   0100 0011 = 67
13              *换句话说: 某个位是1就代表了这个位上的值在枚举中存在
14              */
15             Console.WriteLine("这3天组合Int为: "+(int)wds);
16             /*利用上面规则来判断枚举值中是否包含某个枚举值就轻而易举*/
17             if ((wds & WeekDays.Monday) != 0)
18                 Console.WriteLine("星期一是其中一天");
19             if ((wds & WeekDays.Saturday) == 0)
20                 Console.WriteLine("星期六不是其中一天");
21 
22             //(补充)如果将某个值去掉的话可以按照原来采用这次方式
23             /* 将星期一从枚举变量中去掉
24              *  0100 0011
25              * &1011 1111 (~WeekDays.Monday)取反
26              * =0000 0011 这样就把星期一去掉啦!
27             */
28             wds = wds & (~WeekDays.Monday);
29             Console.WriteLine("去掉星期一后的效果: "+wds);
30         }
[十万个为什么]__C#的Enum中Flags的用法

 

运行结果

 
[十万个为什么]__C#的Enum中Flags的用法 

 

源代码下载





原标题:[十万个为什么]__C#的Enum中Flags的用法

关键词:C#

C#
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

买家订单:https://www.goluckyvip.com/tag/5676.html
美国站消费税:https://www.goluckyvip.com/tag/5678.html
VC 账号:https://www.goluckyvip.com/tag/5679.html
兰亭集势盈利:https://www.goluckyvip.com/tag/568.html
废青卖家:https://www.goluckyvip.com/tag/5680.html
VC乱象:https://www.goluckyvip.com/tag/5681.html
上海到镇江茅山旅游攻略 上海到镇江茅山旅游攻略路线:https://www.vstour.cn/a/404239.html
舟山普陀区有哪些旅游景点 舟山普陀山有哪些景点:https://www.vstour.cn/a/404240.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流