1

我定义了这个接口:

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 上的符号的错误...从该接口派生的正确方法是什么?

4

2 回答 2

7

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

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

或使它们具体化:

public class OwlAnnotation2 : IOwlAnnotation2<string, int, bool>
于 2012-08-19T00:56:22.243 回答
4

要么使类具有相同的参数化合价,要么让它实现具有确定类参数的接口版本,具体取决于您真正想要的。

如果该类仅确定接口的某些类,您也可以混合和匹配,但我想这可能不是给定问题的情况。

于 2012-08-19T00:56:51.097 回答