Tag: flags

比较C#中的枚举标志

我需要检测是否在枚举值中设置了一个标志,哪个类型用Flag属性标记。 通常它是这样的: (value & flag) == flag 但是因为我需要通用generics(有时在运行时我的事件只有一个“Enum”引用。我找不到一个简单的方法来使用&运算符。目前我这样做: public static bool IsSet(this T value, T flags) where T : Enum { Type numberType = Enum.GetUnderlyingType(typeof(T)); if (numberType.Equals(typeof(int))) { return BoxUnbox(value, flags, (a, b) => (a & b) == b); } else if (numberType.Equals(typeof(sbyte))) { return BoxUnbox(value, flags, (a, b) => (a & b) == b); […]