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



考虑这个类:

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

并且没有返回T值!即使在受保护的属性或字段中,因此子体也不能返回T

与只使用硬编码的基类类型相比,在这里使用泛型参数有什么优势吗?

不,没有优势。由于您只传递类型为T的参数,因此您的方法本质上是相反的,因此您不妨声明它们接受BaseClass引用,而不是T

最新更新