[flags]
enum myenum
{
a=1,b=2,c=4,all=(a|b|c)
}
class myclass
{
public bool HandleFlagsEnum(myenum me)
{
if((me!=0)&&((me&myenum.all)==me)))
return true;
else
return false
}
}
enum myenum
{
a=1,b=2,c=4,all=(a|b|c)
}
class myclass
{
public bool HandleFlagsEnum(myenum me)
{
if((me!=0)&&((me&myenum.all)==me)))
return true;
else
return false
}
}
加上[flags] 就可以按位或
1 [flags]标记是什么?
[flags]指示可以将枚举作为位域(即一组标志)处理。
2 让 All 包括a,b,c?
那么应该是[flags]
enum myenum
{
a=1,b=2,c=4,all=(a | b | c)
}3 优化HandleFlagsEnum?public bool HandleFlagsEnum(myenum me)
{
if((me!=0)&&((me&myenum.all)==me)))
return true;
else
return false
}
}
根据原始代码理解,楼主想判断参数me是否为包括所有标记为的值
那么可以优化为如下代码即可
public bool HandleFlagsEnum(myenum me)
{
return me == myenum.all;
}