Предположим, у меня есть общий абстрактный класс:Перечень проведение родовыми-унаследованы классы
ClassA<T> where T: ClassB
Теперь
public class ClassC: ClassB
и
public class NewClass: ClassA<ClassC>
Я могу создать NewClass
объект по умолчанию конструктор, но я не могу найти способ удержать его в общем наборе более общих ClassA<T>
объектов. Список определяется как
List<ClassA<ClassB>>
не может держать NewClass
объекты. Я бы хотел, чтобы в той же коллекции сохранялись разные типы derrived. Есть ли способ сделать это на C#? Кроме того, я хотел бы избежать использования интерфейсов и виртуальных вызовов, если это возможно.
http://msdn.microsoft.com/en-us/library/dd799517(v=vs.110).aspx –
Почему избежать интерфейсов? Я предпочел бы избегать подклассификации и предпочитаю композицию над наследованием. Http://en.wikipedia.org/wiki/Composition_over_inheritance –
@DennisTraub Я прототипирую игровой движок и вызовы интерфейса слишком дороги для этой цели. – Tarec