通常,在将派生对象传递给方法时,我将接口或基类用作参数类型。
例如
Method1(ICar car);
Method2(BaseClass derivedClass);
但是,当后代类不是泛型时,泛型基类又如何呢?
public class GenericBaseClass<T> where T : BaseClass
{}
public class GenericDerivedClass1 : GenericBaseClass<DerivedClass1>
{}
我可以写类似
Method3(GenericBaseClass<BaseClass> class);
但是我无法将
GenericDerivedClass1
类型的对象传递给此方法。有什么方法可以将我的后代类传递给此方法吗?
最佳答案
您需要使Method3通用:
private void Method3<T>(GenericBaseClass<T> baseClass)
{
}
然后您可以这样称呼它:
Method3(new GenericDerivedClass1());