如何从具有泛型的接口派生类

时间:2012-08-19 00:54:03

标签: c# generics

我定义了这个界面:

public interface IOwlAnnotation2<T1, T2, T3>
{
    T1 OwlAnnotation { get; set; }
    T2 OwlClass { get; set; }
    T3 AnnotationValue { get; set; }
}

现在我想为它派生一个类...所以我写道:

public class OwlAnnotation2 : IOwlAnnotation2<T1, T2, T3>

但是我得到的错误是无法在T1,2,3上解析符号...导出表单的正确方法是什么?

2 个答案:

答案 0 :(得分:7)

您必须在实现类中指定类型参数。你可以保持通用:

public class OwlAnnotation2<T1, T2, T3> : IOwlAnnotation2<T1, T2, T3>

或使它们具体化:

public class OwlAnnotation2 : IOwlAnnotation2<string, int, bool>

答案 1 :(得分:4)

使用相同的参数valence创建类泛型,或者让它实现具有确定的类参数的接口版本,具体取决于您真正想要的。

如果类只确定接口的某些类,你也可以混合和匹配,但我想象的可能不是这个问题。