【发布时间】:2011-05-30 20:04:56
【问题描述】:
我有以下枚举:
[Flags]
public enum Permissions
{
None = 0x0000,
All = 0xFFFF
}
如果引发了 None 或 All ,则不应引发其他标志。
如何检查是否引发了 None 或 All ,而没有其他问题?
【问题讨论】:
-
您没有正确使用
Flags属性。该属性适用于作为位掩码实现的枚举,如果您的枚举是位掩码,那么您不需要问这个问题,因为None将是0和All将是0xFFFF。 -
如果正确使用 used Flags 则 None 将具有掩码 0000...0 并且 All 将具有掩码 1111...1,这意味着
All对应于所有设置的标志和None没有设置任何标志。