繁体   English   中英

实现泛型类和多个接口

[英]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 {}

IDeletableSessionTreeManager扩展/实现了DataManagerIDeletableIAnotherInterface ,而泛型则限于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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM