Повторная инициализация переменной

284
13 ноября 2017, 18:21

Имеется класс FormPar, который наследуется от Form. Все остальные формы в проекте наследуются от FormPar и имеют общий стиль, а также некоторые элементы. В FormPar хранится ссылка на форму, из которой была вызвана данная форма: Form previousF;.

Как повторно инициализировать previousF, не зная ее типа? switch не подходит.

Answer 1
previousF = (FormPar)Activator.CreateInstance(previousF.GetType());
Answer 2

По моему мнению, более правильное решение - действовать через дженерики, например, так:

class FormPar<T> : Form where T : Form, new()
{
    T previousF;
    ...
}

Тогда создание нового экземпляра выглядит просто:

previousF = new T();
Answer 3

Вы не должны повторно инициализировать форму, повторное использование объектов — неправильно. Просто реализуйте интерфейс, в котором будет метод, создающий «свежую» форму, и пусть форма сама его и реализует.

READ ALSO
Как программно добавлять элементы в xamarin android?

Как программно добавлять элементы в xamarin android?

Как программно добавлять textView в ListView?

416
Пропадают разделители пути

Пропадают разделители пути

Пытаюсь передать путь локального файла в js

193
Сравнение Vector3 [Unity C#]

Сравнение Vector3 [Unity C#]

Моя запись:

398
подключение к rdp c#

подключение к rdp c#

Всем приветВозник такой вопрос, делаю программу, которая будет подключаться по рдп к терминальному серверу, и на нем вызывать еще один rdp для...

329