Страницы

Поиск по вопросам

среда, 19 декабря 2018 г.

Как выполнить инстанцирование объекта в generic-типе?

Создаю свой generic-абстрактный класс:
public abstract class MyAbstractGeneric where T : MyClass { protected T instance;
public T MyProp { get { if(instance == null) { instance = new T(); //компилятор не позволяет создавать объект таким образом } return instance; } } }
Как правильно инстанциировать объект в таком случае?


Ответ

Для указания, что параметр T должен иметь конструктор по умолчанию можно использовать ограничение new()
Тогда код уже не будет ругаться на new T()
Так же в .net присутствует возможность создания объектов с помощью класса Activator
Например, Activator.CreateInstance(Type type, params object[] args):
instanse = Activator.CreateInstance(typeof(T),parameters);

Комментариев нет:

Отправить комментарий