C# 枚举使用[Flags] 特性形成一个位掩码及判断是否存在某个枚举组合

在C#中,通过给枚举类型添加 [Flags] 特性,可以指示该枚举类型是用于表示位标志的枚举。

使用带有 [Flags] 特性的枚举类型允许将多个枚举值组合在一起,形成一个位掩码,提供了一种更方便和可读性更好的方式来表示多个选项的组合。

当给枚举类型添加 [Flags] 特性后,可以使用按位或 | 运算符来组合多个枚举值,使用按位与 & 运算符来判断是否包含某个特定的枚举值。

以下是一个示例:

[Flags]
enum MyEnum
{
    None = 0,
    Option1 = 1,
    Option2 = 2,
    Option3 = 4,
    Option4 = 8
}

static void Main()
{
    MyEnum value = MyEnum.Option1 | MyEnum.Option3;

    if ((value & (MyEnum.Option1 | MyEnum.Option2)) == (MyEnum.Option1 | MyEnum.Option2))
    {
        Console.WriteLine("value 同时包含 Option1 和 Option2");
    }
    else if ((value & (MyEnum.Option1 | MyEnum.Option2)) != (MyEnum.Option1 | MyEnum.Option2))
   { 
    Console.WriteLine("value 不同时包含 Option1 和 Option2");
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值