我的情况如下:
public interface I {}
public class D1 : I {}
public class D2 : I {}
public class A
{
public List<D1> Collection {get;set;}
//Other Members
}
public class B
{
public List<D2> Collection {get;set;}
//Other Members
}
因此,A 和 B 都有从 I 派生的元素的 List。
如何为 A 和 B 定义基类?
PS我试图概括基类:
class Base<T> where T : I
{
List<T> Collection {get;set;}
}
A:Base<D1>{..}; B:Base<D2> {..}
但它什么也没给我(或者我只是这么认为):我不能这样做:
Base<I> b;
b= new A();
b= new B();
因为不可能从List<I>
to 转换为List<D1>
谢谢