实现泛型类和多个接口

use*_*120 0 c# syntax

我有以下类定义:

public class SessionTreeManager<T> 
    : DataManager<T> where T : DataItem, IDeletable, IAnotherInterface
Run Code Online (Sandbox Code Playgroud)

我只希望T成为DataItem并实现其他两个接口.编译器似乎认为我希望T成为3中的任何一个并给出构建错误,因为上面的类中的T没有实现所有3并且这个类无法找到要覆盖的方法.

这可能吗?

Ana*_*and 5

如果我正确理解您的问题,您必须执行以下操作:

public class SessionTreeManager<T> 
    : DataManager<T>, IDeletable, IAnotherInterface 
    where T : DataItem {}
Run Code Online (Sandbox Code Playgroud)

其中说,SessionTreeManager扩展/实现DataManager,IDeletable并且IAnotherInterface通用被限制为DataItem.

您还可以将extends设置DataManager<DataItem>为在其他注释中提到,但是父方法不会被约束到class T,而是将其约束到其父级DataItem.这样,所有的方法SessionTreeManager以及它的父类DataManager将被限制在子类的DataItemclass T