[英]Implementing generic class and multiple interfaces
我有以下类定义:
public class SessionTreeManager<T>
: DataManager<T> where T : DataItem, IDeletable, IAnotherInterface
我只希望T成为DataItem并实现其他两个接口。 编译器似乎认为我希望T是3中的任意一个,并给出构建错误,因为我在上述类中的T并未实现所有3,并且此类无法找到要覆盖的方法。
这可能吗?
如果我正确理解了您的问题,则必须执行以下操作:
public class SessionTreeManager<T>
: DataManager<T>, IDeletable, IAnotherInterface
where T : DataItem {}
IDeletable
, SessionTreeManager
扩展/实现了DataManager
, IDeletable
和IAnotherInterface
,而泛型则限于DataItem
。
您还可以将扩展设置为DataManager<DataItem>
如其他注释中所述,但是父方法将不会被约束为class T
,而是会被约束为其父类DataItem
。 这样, SessionTreeManager
所有方法及其父类DataManager
都将被限制在DataItem
的子class T
尝试这个
public class SessionTreeManager<T> : DataManager<DataItem>, IDeletable, IAnotherInterface
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.