枚举位运算

发布时间 2023-09-17 02:49:49作者: euv

一个枚举变量表示一种状态,但是C#的枚举支持一个枚举变量表示多种状态。

枚举成员的值必须是2的整数次幂。

如下

[System.Flags]
public enum Day
{
    Monday = 1,
    Tuesday = 2,
    Wednesday = 4,
    Thursday = 8,
    Friday = 16,
    Saturday = 32,
    Sunday = 64
}

1个枚举变量表示多个枚举值
Day day = Saturday | Sunday;

删除一项枚举
day ^= Day.Saturday;

判断是否包含某项枚举
(day & Day.Sunday) > 0;