读书笔记 enum枚举之位标志属性(Flags)浅析

针对enum枚举来说,可以定义位标志属性,从而使该枚举类型的实例可以存储枚举列表中定义值的任意组合。可以用 与(&)、或(|)、异或(^)进行相应的运算。废话不多说,代码最直接。

        //每一个定义值都是一个位标志
        [Flags]
        enum Days { 
            Sunday=0x01,
            Monday=0x02,
            Tuesday=0x04,
            Wednesday=0x08,
            Thursday=0x10,
            Friday=0x20,
            Saturday=0x40
        }

//---------------------------------------------------

            //可以用 或(|) 运算符来组合
            Days meetingDay = Days.Monday | Days.Tuesday;
            Console.WriteLine(meetingDay);
            //打印 Monday, Tuesday

            //用 与(&) 运算符来判断是否包含该值 打印yes
            if((meetingDay & Days.Monday) == Days.Monday)
                Console.WriteLine("yes");
            else 
                Console.WriteLine("none");

            //用 异或(^) 运算符来去除其中一个值
            meetingDay = meetingDay ^ Days.Monday;
            Console.WriteLine(meetingDay);
            //打印 Tuesday
原文地址:https://www.cnblogs.com/williamwsj/p/6047884.html