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");
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」