Передача имени класса и создание экземпляра соответствующего объекта - C#
Формулировка задачи:
Добрый день!
В моем приложении часто используется код:
где ImportForm - один из многих классов форм ввода/редактирования данных. Конструктору в качестве параметра передается экземпляр главной формы для работы с её некоторыми объектами.
Хочется не нарушать принцип Don't repeat yourself и написать общий метод для вызова дочерних форм.
С помощью найденных примеров задачу решить не удаётся.
Например так:
выдает ошибку: "Ссылка на объект не указывает на экземпляр объекта."
Или так:
выдает ошибку: "Ссылка на объект не указывает на экземпляр объекта."
Еще пробовал так:
Тут проблема с передачей параметра в конструкторе.
Какой из всех подходов более правильный, простой, быстрый? Пожалуйста, помогите!
Листинг программы
- if (!Dialogs.connectedToDB()) return;
- ImportForm imvf = new ImportForm(this);
- imvf.ShowDialog();
Листинг программы
- Type type = classObj.GetType();
- ConstructorInfo constructor = type.GetConstructor(new Type[] {typeof(classObj)});
- object newObject = constructor.Invoke(null);
- MethodInfo methodInfo = type.GetMethod("ShowDialog()");
- methodInfo.Invoke(newObject, null)
Листинг программы
- object apf;
- apf = Activator.CreateInstance(type);
- MethodInfo mi = type.GetMethod("ShowDialog()");
- mi.Invoke(apf, null);
Листинг программы
- static void ShowSingleForm<TForm>(int id, DataGridView dgv, MainForm mf, Type type) where TForm : Form, new()
- {
- TForm form = Application.OpenForms.OfType<TForm>().FirstOrDefault();
- form = new TForm();
- form.Show();
- }
Решение задачи: «Передача имени класса и создание экземпляра соответствующего объекта»
textual
Листинг программы
- using System;
- public class Example
- {
- public static void Main()
- {
- // Initialize array of characters from a to z.
- Char[] chars = new Char[26];
- for (int ctr = 0; ctr < 26; ctr++)
- chars[ctr] = (char) (ctr + 0x0061);
- Object obj = Activator.CreateInstance(typeof(String),
- new Object[] { chars, 13, 10 } );
- Console.WriteLine(obj);
- }
- }
- // The example displays the following output:
- // nopqrstuvw
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д