首页 > 其他分享 >标志枚举(Flag Enum)

标志枚举(Flag Enum)

时间:2024-02-19 17:56:13浏览次数:20  
标签:标志 选项 Enum EnumCustomFunction 枚举 Flag 导入 options

在 C# 中,使用 Flags 属性声明的枚举被称为标志枚举(Flag Enum)。标志枚举允许将多个枚举值组合成一个单独的值,以便同时表示多个状态或选项。

当你使用标志枚举时,可以通过按位运算来组合、拆分和检查枚举值。这使得标志枚举在表示各种组合状态的选项时非常有用。

 [Flags]
 public enum EnumCustomFunction : long
 {
     多涂层 = 1 << 0,
     导入检测数据 = 1 << 1,
     导入ABCard数据 = 1 << 2,
     导出报告自适应列宽 = 1 << 3,
     新项目管理 = 1 << 4,
 }

 

EnumCustomFunction 是一个标志枚举,其中每个枚举值都是通过左移位运算符 << 来定义的。例如,多涂层 的值是 1 左移 0 位,即 1,导入检测数据 的值是 1 左移 1 位,即 2,以此类推。

以下是一些标志枚举的常见用法:

  1. 组合枚举值:

     
    EnumCustomFunction options = EnumCustomFunction.导入检测数据 | EnumCustomFunction.导入ABCard数据;

     

  2. 拆分枚举值:

     
    if ((options & EnumCustomFunction.导入检测数据) == EnumCustomFunction.导入检测数据)
    {
        // 包含导入检测数据选项
    }
     if (customerforminfo != null && customerforminfo.ConfigSummary != null && ((EnumCustomFunction)customerforminfo.ConfigSummary & EnumCustomFunction.新项目管理) == EnumCustomFunction.新项目管理)
     {
         isaddproject = 1;
     }

     

  3. 添加或移除枚举值:

    csharpCopy Code
    options = options | EnumCustomFunction.新项目管理; // 添加新项目管理选项
    options = options & ~EnumCustomFunction.多涂层; // 移除多涂层选项

     

标签:标志,选项,Enum,EnumCustomFunction,枚举,Flag,导入,options
From: https://www.cnblogs.com/shy1766IT/p/18021661

相关文章

  • 2024,立一些flag
    关于2023进入了一些新的领域ANC:前半年一直再弄ANC,折腾折腾,好不容易原理搞懂,有了初步的优化结果,结果公司砍了需求,感觉现在处于半吊子水平。没有需求也没有理由去深入,就此搁置。nnAEC:后面做了nnAEC的数据增强,借助这个项目,对整个AEC的处理流程和某些卡喉的难点(非线性失真,延时抖动)......
  • 2024-02-18-物联网C语言(8-结构体、共用体、枚举)
    8.结构体、共用体、枚举8.1结构体的概念和定义8.1.1基本概述构造类型:不是基本类型的数据结构也不是指针,它是若干个相同或不同类型的数据构成的集合。常用的构造类型有数组、结构体、共用体。数组用于保存多个相同类型的数据结构体用于保存多个不同类型的数据8.1.2概......
  • IfcConnectionTypeEnum
    IfcConnectionTypeEnum类型定义该枚举定义了基于路径的元素(如IfcWallStandardCase)连接的不同方式,如图179所示。 IFC2.0中的新型 EnumerationdefinitionConstantDescriptionATPATHConnectionalongthepathoftheconnectedelement.ATSTARTConnectionatthe......
  • IfcBeamTypeEnum
    IfcBeamTypeEnum类型定义此枚举定义不同预定义类型的梁,这些梁可以进一步指定IfcBeam或IfcBeamType。  IFC2x2中的新枚举类型。IFC4添加了枚举器HOLLOWCORE和SPANDREL。  EnumerationdefinitionConstantDescriptionBEAMAstandardbeamusuallyusedhorizontal......
  • IfcBuildingSystemTypeEnum
    IfcBuildingSystemTypeEnum 类型定义此枚举标识不同类型的建筑系统。 IFC4中的新枚举。 EnumerationdefinitionConstantDescriptionFENESTRATIONSystemofdoors,windows,andotherfillingsinopeninginabuildingenvelopthataredesignedtopermitth......
  • [Rust] Error handling with Enum
    Wecanuse ReusltenumtodoerrorhandlingtypeResult<V,E>{Err(E),Ok(V)} Example://():empty//uszie:justreturnaintegreaserrorfordemofnerror_me(throw:bool)->Result<(),usize>{ifthrow{returnEr......
  • 枚举类型
    1什么是枚举类型2枚举类型的实现方式2.1自定义枚举类型2.2enum枚举类型......
  • IfcColumnTypeEnum
    IfcColumnTypeEnum类型定义此枚举定义不同的预定义列类型,这些列可以进一步指定IfcColumn或IfcColumnType。 IFC2x2中的新枚举。 EnumerationdefinitionConstantDescriptionCOLUMNAstandardmemberusuallyverticalandrequiringresistancetoverticalforces......
  • [Rust] Intro Enum
    GoEnumpackagemaintypeGoEnum=intconst(FooGoEnum=iotaBarBaz)funcmain(){} TypescriptEnumenumTsEnum{Foo,Bar,Baz} RustEnumenumRsEnum{Foo,Bar,Baz}Whygooverenums...Theyaresimple......
  • IfcChimneyTypeEnum
    IfcChimneyTypeEnum类型定义此枚举定义了可以使用枚举值预定义的烟囱的有效类型。 IFC4中的新枚举注:目前没有定义特定的枚举器,已添加IfcChimneyTypeEnum以供将来扩展。 EnumerationdefinitionConstantDescriptionUSERDEFINED NOTDEFINED   EXPRESS......