class B : A {}
class Sub<T> where T:A
{
//...
}
我希望你能够在集合中存储Sub实例。
var c = new List<Sub<A>>();
c.Add(new Sub<B>()); //doesn't work
然而,为了使其真正起作用,我必须声明一个接口并存储该接口的实例。
interface IBase
{
void DoStuff(A a);
}
var c = new List<IBase>();
c.Add(new Sub<B>()); //works
有没有更加优雅的方式来完成这个任务?