Создаю свой generic-абстрактный класс:
public abstract class MyAbstractGeneric
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);
Комментариев нет:
Отправить комментарий