зачем создавать объект класса двумя способами
есть подключенная к проекту сборка "PersonInfo" в котором есть файл "Person". Есть способ 1 создания экземпляра класса:
Person p = (Person)Activator.CreateInstance("PersonInfo", "Person").Unwrap();
есть обычный способ 2:
Person p = new Person();
Вопрос: зачем нужен способ 1 если есть простой способ 2 ?
Ответы (1 шт):
Этот пример несовсем правильный. В первом случае как правило явный тип не используется.
Ответ прост, активатор применяется тогда, когда вы не знаете на этапе компиляции, какой тип объекта в этом месте кода предстоит создать. Помимо активатора есть и другие динамические способы создаия объектов.
А явный вызов конструтора используется, когда на момент написания кода, точно известно, какой тип требуется создать в этом месте.
Вот пример рабочего использования активатора, где явный вызов конструктора никак не подойдёт.