• enum flags 枚举Flags标示 位运算符


    C#位运算 详见:http://wenku.baidu.com/link?url=4KUNkwuVTm8dwhmPLXeyYytmnDOJnmLG1L2C77kP-rY0On33ksQxwchoTlqhHd4j41cRk1_3UK7amfR_fWh0Hh1EroSy0y-CgExegjZJBbS 

    --------------------------------

    C#的Enum中Flags的用法(枚举赋多值和如何进行判断)  

    2012-04-23 10:26:06|  分类: 程序(NET)|举报|字号 订阅

     
     

    Flags关键字允许我们在使用.net枚举变量时,使用多个组合值,多个值的赋值方法是使用关键字“|”,

    即WeekDays weekdays=WeekDays.Monday  |  WeekDays.Tuesday;

    判断枚举是否具有该值:if( weekdays | WeekDays.Monday!=0)   说明是否包含该值

    http://www.cnblogs.com/kingmoon/archive/2011/12/11/2284319.html

    介绍

    Flags关键字允许我们在使用.net 枚举变量时,使用多个组合值 

    使用演示 

    复制代码
     1     [Flags]
     2     enum WeekDays
     3     { 
     4         //注意: 这里不要将Sunday设置为0x0,至于为什么留给大家思考
     5         Monday = 0x1,
     6         Tuesday = 0x2,
     7         Wednesday = 0x4,
     8         Thursday = 0x8,
     9         Friday = 0x10,
    10         Saturday = 0x20,
    11         Sunday = 0x40
    12     }
    复制代码

          只需要在Enum上使用上[Flags]标签即可标记为可组合的枚举.下面是简单的用法:

    复制代码
     1         static void TestEnumFlags()
     2         {
     3             /************Kingmoon Lab 之 enum flags 语法*********************/
     4             /*用'|'将各个枚举值分开即可*/
     5             WeekDays wds = WeekDays.Monday | WeekDays.Sunday | WeekDays.Tuesday;
     6             Console.WriteLine("我这3天要来大姨妈:"+wds);
     7             /* 我们来看看计算过程:
     8              * 或运算:
     9                  0000 0001 --星期一 0x1
    10               或 0100 0000 --星期六 0x20
    11               或 0000 0010 --星期二 0x2
    12              =   0100 0011 = 67
    13              *换句话说: 某个位是1就代表了这个位上的值在枚举中存在
    14              */
    15             Console.WriteLine("这3天组合Int为: "+(int)wds);
    16             /*利用上面规则来判断枚举值中是否包含某个枚举值就轻而易举*/
    17             if ((wds & WeekDays.Monday) != 0)
    18                 Console.WriteLine("星期一是其中一天");
    19             if ((wds & WeekDays.Saturday) == 0)
    20                 Console.WriteLine("星期六不是其中一天");
    21         }
    复制代码

    运行结果 

      

    源代码下载

    -------------------------------------------
     
  • 相关阅读:
    第六章 Realm及相关对象(四) PrincipalCollection
    Java消息中间件的概述与JMS规范
    什么是红黑树?
    Mybatis逆向工程的pojo实现序列化接口的代码
    关于 Java 中 finally 语句块的深度辨析
    一道字符串变量对比值是否相等题
    java-网络编程
    java. io 流
    java.io.File 类的常用的方法
    list集合排序的两种方法
  • 原文地址:https://www.cnblogs.com/niaowo/p/4004405.html
Copyright © 2020-2023  润新知