我正在为几个支持[Flags]属性的枚举集合重构一些代码。
我试图提出一个允许常用方法的泛型类(添加,删除和检查集合中存在的枚举等)。
我从这段代码开始:
public class EnumFlags<T>
{
protected T collection;
public void Add(T value)
{
this.collection = this.collection | value;
}
}
但是,我不能使用|类型为T的运算符。我不能将T的约束添加为枚举(不允许where T : Enum
)。
有任何解决这个问题的想法吗?