考虑以下枚举:
[System.Flags]
public enum EnumType: int
{
None = 0,
Black = 2,
White = 4,
Both = Black | White,
Either = ???, // How would you do this?
}
目前,我已经写了一个扩展方法:
public static bool IsEither (this EnumType type)
{
return
(
((type & EnumType.Major) == EnumType.Major)
|| ((type & EnumType.Minor) == EnumType.Minor)
);
}
有没有更优雅的方法来实现这一点?
更新:从答案中可以明显看出, EnumType.Either 在枚举本身中没有位置。