详解C#枚举中使用Flags特性

作者:暴躁老砚 时间:2023-05-19 04:44:31 

如果对一个值可以包含多个,那么可以使用枚举,加上Flags。

新建一个Flags枚举类型:

[Flags]
   public enum Show
   {
       A = 0x00000001,
       B = 0x00000010,
       C = 0x00000100,
       D = 0x00001000,
   }

合并多个值

合并多个,使用|

Show show = Show.A | Show.B

判断是否存在某个值

一个简单方法是用 HasFlag,但是一个方法是用&

Show show=Show.A | Show.B;
 show.HasFlag(Show.A);
 //其他
 bool 包含 = (show & Show.A)!=0;

去掉一个值

Show show=Show.A | Show.B;
 show=show & (~Show.A);

取反一个值

Show show = Show.A | Show.B;
 bool 包含 = (show & Show.A)!=0;
 if(包含)
 {
    show=show & (~Show.A);
 }
 else
 {
    show=show | Show.A;
 }

参考:

C# 位域[flags]

来源:https://www.cnblogs.com/Yan3399/p/16020660.html

标签:C#,枚举,Flags
0
投稿

猜你喜欢

  • spring cloud zuul增加header传输的操作

    2022-12-31 17:24:50
  • Java中StringBuilder与StringBuffer使用及源码解读

    2022-05-16 09:11:18
  • java8中的默认垃圾回收器(GC)

    2021-12-01 04:27:30
  • RocketMQ实现随缘分BUG小功能示例详解

    2023-01-20 04:21:05
  • java多线程创建及线程安全详解

    2022-12-02 18:58:51
  • C# protobuf自动更新cs文件

    2021-10-08 10:16:28
  • 解读Spring定义Bean的两种方式:<bean>和@Bean

    2023-01-25 23:37:51
  • c# 防火墙添加/删除 特定端口的示例

    2023-12-22 21:56:41
  • Java8中forEach语句循环一个List和Map

    2021-06-02 07:03:54
  • Spring Cloud 整合 nacos实现动态配置中心的详细步骤

    2023-01-19 18:15:00
  • Java并发编程示例(八):处理线程的非受检异常

    2022-03-23 14:15:57
  • springmvc前台向后台传值几种方式总结(从简单到复杂)

    2023-04-13 22:20:50
  • Android入门之实现自定义Adapter

    2021-09-30 17:34:10
  • Java实现浪漫流星表白的示例代码

    2023-04-02 14:50:35
  • Java并发之串行线程池实例解析

    2023-01-07 18:35:54
  • Spring @Bean注解的使用场景与案例实现

    2023-11-20 04:44:22
  • C#获取全部目录和文件的简单实例

    2021-09-01 02:51:00
  • android安装后启动出错解决

    2021-10-31 12:13:26
  • 基于JAVA中Jersey处理Http协议中的Multipart的详解

    2021-06-15 13:43:57
  • Android仿淘宝物流追踪的实例代码

    2021-08-19 22:57:23
  • asp之家 软件编程 m.aspxhome.com