标签: 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。
T
与刚刚硬编码的基类类型相比,使用泛型参数是否有任何优势?
答案 0 :(得分:0)
不,没有优势。由于您只传递T类型的参数,因此您的方法基本上是contravariant,因此您可以声明它们采用BaseClass引用而不是T。
BaseClass