Доброго!
Есть интерфейс IInterface,
Есть абстрактный класс его реализующий AClass
И есть абстрактный класс
AClasses<T>
{
List<T> Elements;
void SomeMethod()
{
T _el = new T();
_el.Some();
Elements.Add(_el);
}
}
Вот в методе SomeMethod() проблема так как это сделать нельзя. T должен наследоваться от IInterface ну или на крайний случай от AClass.
Так вот вопрос. Как заполнить List Elements в абстрактном классе
Например, при помощи ограничений на T:
class AClasses<T> where T : IInterface, new()
{
...
Это будет работать, если у ваших классов есть пустой конструктор.
Если пустого конструктора нет, то создание экземпляров нужно делать как-нибудь по-другому, например, через фабрику или создающий делегат.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей