CSharp编程小技巧-使用枚举 Enum.HasFlag 方法
C# 全选
[Flags]
public enum DaysofTheWeek
{
None = 0,
Monday = 1 << 0,
Tuesday = 1 << 1,
Wednesday = 1 << 2,
Thursday = 1 << 3,
Friday = 1 << 4,
Saturday = 1 << 5,
Sunday = 1 << 6,
}
现在,我们想要判断一个 DaysofTheweek
枚举是否包含Monday
:
C# 全选
DaysOfTheweek days = DaysofTheweek .Monday DaysOfTheWeek .Wednesday;
if (days .HasFlag(DaysofTheWeek .Monday))
{
Console.writeLine("days 包含 Monday");
}
else
{
Console.WriteLine("days 不包含 Monday");
}
在上述代码中,我们定义了一个名为 days
的 DaysofTheweek
枚举,其中包含了周一、周三和周五的标志位。然后,我们使用 HasFlag
方法来检查 days
是否包含周一的标志位。根据结果输出不同的消息到控制台。
如果你需要判断多个可能包含的枚举值,可以在 if
语句中使用运算符
C# 全选
if (days .HasFlag(DaysofTheWeek.Monday DaysofTheWeek .Tuesday))
{
// 如 days 包含 Monday 或 Tuesday,则执行此处逻辑
}
注意,只有当枚举类型使用FlagsAttribute
特性进行标记时才能使用位运算
版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
post 张国生