如何使用枚举的组合值

简介:
有时我们需要将枚举定义为1,2,4,8.......的值,这样当传入一个3,那么就是表示1,2的组合,如果传入7,那就表示1,2,4的组合。要实现这种功能我们需要用到FlagsAttribute。具体用法如下:
1.定义Enum。
[Flags]
public   enum  FormType
{
    Reimburse
= 1 ,
    Payment
= 2 ,
    Precharge
= 4 ,
    PO
= 8
}
2.组合枚举值的判断:
public   static   void  Print(FormType ft)
    
{
        
if((ft&FormType.Reimburse)==FormType.Reimburse)//与判断
        {
            Console.WriteLine(
"Reimburse");
        }

        
if((ft&FormType.Payment)==FormType.Payment)
        
{
            Console.WriteLine(
"Payment");
        }

        
if((ft&FormType.Precharge)==FormType.Precharge)
        
{
            Console.WriteLine(
"Precharge");
        }

        
if((ft&FormType.PO)==FormType.PO)
        
{
            Console.WriteLine(
"PO");
        }

        Console.WriteLine(
"End");
    }

3.生成组合枚举:
FormType ft = FormType.Reimburse | FormType.PO;
Print(ft);
运行输出的结果就是:
Reimburse
PO
目录
相关文章
|
2月前
|
机器学习/深度学习 算法 编译器
【C++ 泛型编程 中级篇】深度解析C++:类型模板参数与非类型模板参数
【C++ 泛型编程 中级篇】深度解析C++:类型模板参数与非类型模板参数
47 0
|
4月前
Carve-out 的含义和使用场景介绍
Carve-out 的含义和使用场景介绍
35 0
|
API Serverless 监控
函数组合的N种方式
随着以函数即服务(Function as a Service)为代表的无服务器计算(Serverless)的广泛使用,很多用户遇到了涉及多个函数的场景,需要组合多个函数来共同完成一个业务目标,这正是微服务“分而治之,合而用之”的精髓所在。
2229 0
|
11天前
|
JavaScript 前端开发 编译器
TypeScript中的高级类型:联合类型、交叉类型与条件类型深入解析
【4月更文挑战第23天】探索TypeScript的高级类型。这些特性增强类型系统的灵活性,提升代码质量和维护性。
|
9月前
🎖️typeScrpt中如何使用条件类型和泛型?
我将通过一个可能对日常使用非常有帮助的代码示例更深入地介绍泛型。
48 1
|
9月前
|
前端开发
形成新数组的方式扩展运算符
形成新数组的方式扩展运算符
27 0
|
10月前
|
数据库
机房重构—在应使用条件的上下文(在 ‘where‘ 附近)中指定了非布尔类型的表达式
在应使用条件的上下文(在 ‘where‘ 附近)中指定了非布尔类型的表达式
|
11月前
|
JSON 数据格式
【解决方案 十七】序列化反序列化时枚举值如何显示为字符串
【解决方案 十七】序列化反序列化时枚举值如何显示为字符串
109 0
|
机器学习/深度学习 存储 算法
枚举算法实例应用(一)
枚举算法实例应用,包括完美立方式判定、生理高峰问题、Counterfeit Dollar(POJ)问题。
3931 0
|
移动开发 程序员
H5 中 bordercolorlight 属性的用法及作用
H5 中 bordercolorlight 属性的用法及作用
185 0
H5 中 bordercolorlight 属性的用法及作用