这是设置。
public interface IBaseClass
{
}
public class DerivedClass1 : IBaseClass
{
}
public class DerivedClass2 : IBaseClass
{
}
public class WrapperClass<T> where T : IBaseClass
{
public T DClassItem {get;set;}
}
public List<WrapperClass<IBaseClass>> GetClasses()
{
List<WrapperClass<IBaseClass>> stuff = new List<WrapperClass<IBaseClass>>();
DerivedClass1 d1 = new DerivedClass1();
DerivedClass2 d2 = new DerivedClass2();
stuff.Add(GetWrapper(d1));
stuff.Add(GetWrapper(d2));
}
public GetWrapper<T>(T input) where T : IBaseClass
{
return new WrapperClass(){
DClassItem = input
};
}
在GetClasses结束时,我希望有一个包含WrapperClass<DerivedClass1>
和WrapperClass<DerivedClass2>
的列表。但是,当我尝试添加GetWrapper调用的结果时,会抛出一条错误消息,指出它无法从WrapperClass<DerivedClass1>
转换为WrapperClass<IBaseClass>
。有没有办法通过混合不同的DerivedClass类型获得WrapperClass的所有实例的某种集合?