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

 更新时间:2022年03月18日 10:40:37   作者:暴躁老砚  
这篇文章主要介绍了C#枚举中使用Flags特性的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

如果对一个值可以包含多个,那么可以使用枚举,加上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]

到此这篇关于C#枚举中使用Flags特性的文章就介绍到这了,更多相关C#枚举Flags特性内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#实现获取电脑中的端口号和硬件信息

    C#实现获取电脑中的端口号和硬件信息

    这篇文章主要为大家详细介绍了C#实现获取电脑中的端口号和硬件信息的相关方法,文中的示例代码讲解详细,有需要的小伙伴可以参考一下
    2025-01-01
  • c# 应用NPOI获取Excel中的图片,保存至本地的算法

    c# 应用NPOI获取Excel中的图片,保存至本地的算法

    本文主要介绍了c# 应用NPOI获取Excel中的图片,保存至本地的算法。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • C#多线程编程中的锁系统基本用法

    C#多线程编程中的锁系统基本用法

    这篇文章主要介绍了C#多线程编程中的锁系统基本用法,本文讲解了lock、Monitor、mutex、Semaphore等内容,需要的朋友可以参考下
    2015-04-04
  • C#操作配置文件app.config、web.config增删改

    C#操作配置文件app.config、web.config增删改

    这篇文章介绍了C#操作配置文件app.config、web.config增删改的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • C#用timer实现背单词小程序

    C#用timer实现背单词小程序

    这篇文章主要为大家详细介绍了C#用timer实现背单词小程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07
  • 解析使用enumerator模式简化异步操作的详解

    解析使用enumerator模式简化异步操作的详解

    本篇文章是对使用enumerator模式简化异步操作进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C#将Excel中的数据转换成DataSet

    C#将Excel中的数据转换成DataSet

    这篇文章主要介绍了C#将Excel中的数据转换成DataSet的方法,非常简单实用,从本人项目中提取出来的,推荐给大家,希望对大家学习C#能够有所帮助。
    2015-03-03
  • C#中获取程序路径的几种方法及其区别说明

    C#中获取程序路径的几种方法及其区别说明

    这篇文章主要介绍了C#中获取程序路径的几种方法及其区别说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • C# System.Linq提供类似SQL语法的高效查询操作

    C# System.Linq提供类似SQL语法的高效查询操作

    System.Linq是C#的一个命名空间,提供了LINQ(语言集成查询)功能,允许开发者使用一致的查询语法来处理不同类型的数据源,如数组、集合、数据库和XML等,本文介绍C# System.Linq提供类似SQL语法的高效查询操作,感兴趣的朋友一起看看吧
    2024-09-09
  • Unity Shader实现2D水流效果

    Unity Shader实现2D水流效果

    这篇文章主要为大家详细介绍了Unity Shader实现2D水流效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05

最新评论