我有一个代码
enum WeekDays
{
Sat = 64,
Sun = 1,
Mon = 2,
Tue = 4,
Wed = 8,
Thu = 16,
Fri = 32
WorkDays = Sat | Sun | Mon | Tue | Wed
}
Run Code Online (Sandbox Code Playgroud)
我想了解更多:
WorkDays = Sat | Sun | Mon | Tue | Wed
Run Code Online (Sandbox Code Playgroud)
它的价值意味着什么?
你可能有一个[Flags]属性.
工作日创建为二进制或工作日值(不是我的工作日).
所以天数是手动编号,使它们的权力为2:
Sun = 0000001
Mon = 0000010
Tue = 0000100
Wed = 0001000
Sat = 1000000
Run Code Online (Sandbox Code Playgroud)
等等
然后你可以使用二元运算符来执行Set操作:
MyWeekend = Sat | Sun; // 1000000 | 0000001 = 1000001
Run Code Online (Sandbox Code Playgroud)
并使用二进制 - 并测试成员资格:
WeekDays d = ...;
if ((d & MyWeekend) != 0)
{
// it's weekend !
}
Run Code Online (Sandbox Code Playgroud)