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
Есть ли более элегантный способ сделать это?