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

在项目中提前设计,使用起来非常便捷

网上copy一个例子

[Flags]enum WeekDays{ //注意: 这里不要将Sunday设置为0x0,至于为什么留给大家思考Monday = 0x1,Tuesday = 0x2,Wednesday = 0x4,Thursday = 0x8,Friday = 0x10,Saturday = 0x20,Sunday = 0x40}

static void TestEnumFlags(){/************Kingmoon Lab 之 enum flags 语法*********************//*用'|'将各个枚举值分开即可*/WeekDays wds = WeekDays.Monday | WeekDays.Sunday | WeekDays.Tuesday;Console.WriteLine("我这3天要来大姨妈:"+wds);/* 我们来看看计算过程:* 或运算:0000 0001 --星期一 0x1或 0100 0000 --星期六 0x20或 0000 0010 --星期二 0x2=   0100 0011 = 67*换句话说: 某个位是1就代表了这个位上的值在枚举中存在*/Console.WriteLine("这3天组合Int为: "+(int)wds);/*利用上面规则来判断枚举值中是否包含某个枚举值就轻而易举*/if ((wds & WeekDays.Monday) != 0)Console.WriteLine("星期一是其中一天");if ((wds & WeekDays.Saturday) == 0)Console.WriteLine("星期六不是其中一天");//(补充)如果将某个值去掉的话可以按照原来采用这次方式/* 将星期一从枚举变量中去掉*  0100 0011* &1011 1111 (~WeekDays.Monday)取反* =0000 0011 这样就把星期一去掉啦!*/wds = wds & (~WeekDays.Monday);Console.WriteLine("去掉星期一后的效果: "+wds);}

结果

转载于:https://www.cnblogs.com/cn2018/p/8967316.html

C#的Enum中Flags的用法相关推荐

  1. Android中Parcelable接口用法

    --  通过writeToParcel将你的对象映射成Parcel对象,再通过createFromParcel将Parcel对象映射成你的对象.也可以将Parcel看成是一个流,通过writeToPa ...

  2. C/C++常用宏定义,注意事项,宏中#和##的用法

    总结下宏和函数的不同之处,以供大家写代码时使用,这段总结摘自<C和指针>一书. 当然宏定义非常重要的,它可以帮助我们防止出错,提高代码的可移植性和可读性等. 下面列举一些成熟软件中常用得宏 ...

  3. [c、c++]宏中#和##的用法(zz)

    http://blog.csdn.net/blackbillow/article/details/3850587 [c.c++]宏中"#"和"##"的用法(zz ...

  4. Tensorflow之flags的用法介绍

    1.功能解释 tensorflow中flags用于接收命令行传递参数,可以全局的更改代码中的参数.Tensorflow使用flags类定义命令行参数.网络模型中有大量的超参数需要我们赋值,所以此方法, ...

  5. python argparse模块详解_python中argparse模块用法实例详解

    本文实例讲述了python中argparse模块用法.分享给大家供大家参考.具体分析如下: 平常在写命令行工具的时候,经常会带参数,所以用python中的argparse来实现. # -*- codi ...

  6. 【图像处理】漫水填充函数的使用(flags的用法)

    漫水填充的定义及基本思想 相信大家都玩过计算机中画图工具里的油漆桶,鼠标一点,一片相同颜色的区域就会被油漆桶中颜色覆盖,这便是漫水填充实现的.漫水填充的定义是用特定的颜色填充联通区域,通过设置可以连通 ...

  7. Java 中 switch 的用法

    Java 中 switch 的用法 1.switch 中的表达式的数据的数据类型为 byte, short, int, char, String(jdk > 1.7支持 String 类型) 2 ...

  8. .NET中的枚举用法浅析

    本文简单分析了.NET中的枚举用法.分享给大家供大家参考.具体分析如下: 我理解的枚举就是编程中约定的一个"可选值":例如QQ的在线状态,分别有    在线,Q我吧,隐身,忙碌等等 ...

  9. Android中am命令用法详解

    Android中am命令用法 位于frameworks/base/cmds/pm am命令作用:管理Activity usage: am [start|broadcast|instrument|pro ...

最新文章

  1. openstack API debug OpenstackEveryProject_CLI,curl_based
  2. annotation - SuppressWarning
  3. SpringMVC—对Ajax的处理(含 JSON 类型)(2)
  4. java有string这个类型吗_关于java的String类型
  5. 基于S3C2440A的DM9000A的调试笔记
  6. eclipse开发webservice实例及问题解决
  7. 太阳直射点纬度计算公式_利用旗杆影子——判断日出日落、季节、昼长、经纬度、太阳高度角...
  8. linpack测试软件,【分享】linpack ——intel的pc算力测试软件
  9. 通过关键词获取微博内容
  10. RenderingNG中关键数据结构和它们的角色
  11. ESP32CAM摄像头图像实时传输
  12. mycat连接数据库8.0以上 处理程序连接query_cache_size报错信息 mycat升级数据库踩坑
  13. gamemaker学习笔记:拖拽
  14. 判断当前音效是否播放完毕
  15. synopsys软件安装
  16. nonnegative matrix factorization (NMF)的R实现
  17. TMC4671-LA完全集成伺服控制器电机驱动芯片带FOC控制
  18. probit模型与logit模型的相同点,区别及关系
  19. 从创新到主流选择,英特尔傲腾为用户输出了更多价值
  20. 通过json配置生成form表单,vue3+ts+elementPlus,form表单组件封

热门文章

  1. raiserror 在 java_SQL 抛出异常错误信息- RAISERROR (存储过程)
  2. java treelist 排序_一个很好的Java排序列表
  3. FLEX开发人员中心部分下载
  4. 李迟2021年9月知识总结
  5. 更新wordpress遇到prepare警告问题的解决
  6. Unable to establish loopback connection异常解决
  7. 【Flink】FlinkPer-partition watermark 问题 某个 分区延迟 导致数据丢失
  8. 【Elasticsearch】语言处理系列之打字或拼写错误 模糊匹配 字段纠错 Fuzzy multi_match
  9. 【Elasticsearch】如何在Elasticsearch中查找相似的术语
  10. spark学习-35-Spark的Map任务输出跟踪器MapOutputTracker