通常我在将派生对象传递给方法时使用接口(interface)或基类作为参数类型。 例如
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());
关于c# - 后代非泛型类到基泛型类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1969891/