如果类的接口是逆变的,那么使用泛型引用类型参数有什么好处吗?

时间:2016-05-17 12:52:05

标签: c# generics

考虑这个课程:

class MyClass<T> where T: class // or T: BaseClass
{
    void DoSomething1(T arg){ ... }
    void DoSomething2(T arg){ ... }
    ...
    void DoSomethingN(T arg){ ... }
}

并且T值没有返回!即使在受保护的财产或字段中,后代也不能返回T

与刚刚硬编码的基类类型相比,使用泛型参数是否有任何优势?

1 个答案:

答案 0 :(得分:0)

不,没有优势。由于您只传递T类型的参数,因此您的方法基本上是contravariant,因此您可以声明它们采用BaseClass引用而不是T