实现泛型类和多个接口
本文关键字:接口 泛型类 实现 | 更新日期: 2023-09-27 18:35:56
我有以下类定义:
public class SessionTreeManager<T>
: DataManager<T> where T : DataItem, IDeletable, IAnotherInterface
我只希望 T 是一个数据项并实现其他两个接口。 编译器似乎认为我希望 T 是 3 中的任何一个,并给出了构建错误,因为我在上面类中的 T 没有实现所有 3 个,并且这个类找不到要覆盖的方法。
这可能吗?
如果我
正确理解您的问题,您必须执行以下操作:
public class SessionTreeManager<T>
: DataManager<T>, IDeletable, IAnotherInterface
where T : DataItem {}
也就是说,SessionTreeManager
扩展/实现DataManager
、IDeletable
和IAnotherInterface
,泛型被限制为DataItem
。
您也可以将扩展设置为DataManager<DataItem>
,如其他注释中所述,但随后父方法将不受class T
约束,而是受其父DataItem
的约束。这样,SessionTreeManager
的所有方法及其父类DataManager
都将被约束为DataItem
子类,这是class T
试试这个
public class SessionTreeManager<T> : DataManager<DataItem>, IDeletable, IAnotherInterface