如何使用枚举的组合值

简介:
有时我们需要将枚举定义为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


本文转自深蓝居博客园博客,原文链接:http://www.cnblogs.com/studyzy/archive/2007/10/15/924548.html,如需转载请自行联系原作者

相关文章
|
9月前
|
安全 算法 编译器
【C++基础语法 枚举】C/C++ 中enum枚举量的介绍:介绍enum枚举量在C/C中的作用和使用方法
【C++基础语法 枚举】C/C++ 中enum枚举量的介绍:介绍enum枚举量在C/C中的作用和使用方法
133 2
|
3月前
|
存储
在实际编程中,如何选择使用元组还是列表来返回多个值?
在实际编程中,如何选择使用元组还是列表来返回多个值?
105 51
|
9月前
|
C++
【C++】istream类型对象转换为逻辑条件判断值
【C++】istream类型对象转换为逻辑条件判断值
【C++】istream类型对象转换为逻辑条件判断值
|
8月前
详细解读COM中集合和枚举器笔记(2)枚举器内部实现
详细解读COM中集合和枚举器笔记(2)枚举器内部实现
31 0
|
8月前
|
Dart
Dart之常用数据类型(字符串、数值、布尔、集合、映射)
Dart之常用数据类型(字符串、数值、布尔、集合、映射)
|
9月前
|
算法
枚举算法的介绍
枚举算法的介绍
87 0
|
JavaScript 前端开发
|
算法 搜索推荐 编译器
一组类型相同的数据【C 数组】总结
一组类型相同的数据【C 数组】总结
|
Swift
Swift实用小册07:枚举的创建、使用、遍历、关联值、原始值
Swift实用小册07:枚举的创建、使用、遍历、关联值、原始值
441 0
Swift实用小册07:枚举的创建、使用、遍历、关联值、原始值
|
自然语言处理 搜索推荐 索引
组合数据类型
组合数据类型
215 0
组合数据类型