[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
}
}

解决方案 »

  1. 想要问什么?
    加上[flags] 就可以按位或
      

  2. 楼主想问什么?
    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;
    }
      

类似问题 »