我正在使用C#中的一些泛型。我有一个抽象的泛型类:
public abstract class BaseClass<T> where T : Foo { }
当其他类继承基类时,可以指定类型参数。
我还在尝试编写另一个抽象类的代码,需要存储其中一个基类,但它不知道基类的参数(也不需要知道)。在Java中,我可以简单地写:
protected BaseClass<?> myBaseClass;
但在C#中,它要求我提供一个类型参数。如果我声明为:
protected BaseClass<Foo> myBaseClass;
我不能将任何带参数的BaseClass
值分配给它。
在C#中有没有绕过来实现BaseClass<?>
的效果的方法?显然,有一些方法可以重新组织我的代码以避免需要,例如对使用BaseClass
的所有类进行参数化,但这不是最理想的方法。任何帮助都将不胜感激!