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