Вызов конструктора наследуемого типа C#

308
14 марта 2018, 03:44

Здравствуйте. У меня есть вопрос, возможно ли вызвать конструктор объекта, если точно не знаешь какого он типа? От одного базового класса наследуются несколько других классов. В параметры некой функции я отправляется объект, который наследуется от родителя. В методе есть проверка является ли объект null, если да, то необходимо создать объект. Определять тип объекта я умею, а вот с созданием конструктора у меня проблемы. Вот пример функции:

public static void Open(Form form)
    {
        if (form==null)
        form = new Form();//Вместо этого определить тип(Form1, Form2, и т.д.) 
                          //и вызвать нужный конструктор
        ...
    }
Answer 1

Что то типа такого?

void Main()
{
    OpenForm<Form>();
    OpenForm<Form1>();
    OpenForm<Form2>();
    OpenForm<Form3>();
}
class Form1 : Form { }
class Form2 : Form { }
class Form3 : Form { }
void OpenForm<T>() where T:Form, new()
{       
    var form = new T();
    form.ShowDialog();
}

Но это только для форм с конструкторами без параметров.

READ ALSO
GetHashCode() и Equals() в Hashtable

GetHashCode() и Equals() в Hashtable

Имеется следующий код:

214
Написание текста в чат игры [требует правки]

Написание текста в чат игры [требует правки]

Тема такая: Нужно в игровой чат написать сообщение

257
Загружается перевернутое изображение C#

Загружается перевернутое изображение C#

Изображение было снято на камеру, далее было перевернутоПри загрузке в PictureBox изображение отображается не перевернутым (то есть точно так...

286