Имеется класс FormPar, который наследуется от Form. Все остальные формы в проекте наследуются от FormPar и имеют общий стиль, а также некоторые элементы. В FormPar хранится ссылка на форму, из которой была вызвана данная форма: Form previousF;.
Как повторно инициализировать previousF, не зная ее типа? switch не подходит.
previousF = (FormPar)Activator.CreateInstance(previousF.GetType());
По моему мнению, более правильное решение - действовать через дженерики, например, так:
class FormPar<T> : Form where T : Form, new()
{
T previousF;
...
}
Тогда создание нового экземпляра выглядит просто:
previousF = new T();
Вы не должны повторно инициализировать форму, повторное использование объектов — неправильно. Просто реализуйте интерфейс, в котором будет метод, создающий «свежую» форму, и пусть форма сама его и реализует.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости