请问位域枚举在C#中就是这样使用的吗?
定义了一个位域枚举
[Flags]
public enum DocTreeRootShow
{
None=0,
UserWork=2,
ROOT_Document=4,
ROOT_数据字典=6,
ROOT_User=8,
ROOT_审批模板=32,
ALL=UserWork|ROOT_User|ROOT_Document|ROOT_数据字典|ROOT_审批模板,
}
比较枚举这样的语法不行
DocTreeRootShow test=DocTreeRootShow.ALL
if(test==DocTreeRootShow.UserWork)
{
//永远不会返回真.
}
要这样写才可以
if((test&DocTreeRootShow.UserWork)!=DocTreeRootShow.None)
{
//这样才可以
}
[Flags]关键字没有任何用处,就是去掉也是可以正常执行的,
[Flags]说是支持位域枚举,难道我的用法有问题?
请高手指点.