一、定义:
在枚举上添加[Flags]属性,并以2的幂定义枚举的各个值:
[Flags] public enum TestEnum { Value0 = 1, Value1 = 2, Value2 = 4, Value3 = 8, Value4 = 16, All = Value0 | Value1 | Value2 | Value3 | Value4 }
二、比较:
按位运算比较枚举值是否包括某个值:
// 定义枚举变量 TestEnum testEnum = TestEnum.Value1 | TestEnum.Value2; // 判断枚举变量是否包含枚举Value2的值 bool hasValue = ((testEnum & TestEnum.Value2) == TestEnum.Value2); // 返回判断结果 return hasValue;
更多信息请参阅:FlagsAttribute 类 (System)