У меня есть базовый класс:
public abstract class Foo<T> where T : TBase { ... }
У меня также есть следующие классы, которые реализуют TBase:
public abstract class ImplementsTBase1 : TBase { ... }
public abstract class ImplementsTBase2 : TBase { ... }
Я создаю новые классы, которые реализуют это:
public class Bar1 : Foo<ImplementsTBase1> { ... }
public class Bar2 : Foo<ImplementsTBase2> { ... }
Теперь я хочу добавить два экземпляра этих классов в контейнер следующим образом:
public static List<Foo<TBase>> FooList = new List<Foo<TBase>>();
...
FooList.Add(new Bar1());
FooList.Add(new Bar2());
Однако я не могу этого сделать. Что я могу сделать, чтобы реализовать это?