Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как реализовать динамический выбор конструктора ? / 3 сообщений из 3, страница 1 из 1
15.01.2013, 17:14
    #38111085
M.Vi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как реализовать динамический выбор конструктора ?
Доброго времени суток.
При разработке на C# появился вопрос о возможности в процессе выполнения функции выбирать динамический какой конструктор будет выполнен для объекта.
Объясню на примере кода
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
        Form2 f2; Form3 f3; Form99 f99;

        private void button1_Click(object sender, EventArgs e)
        {
            ShowForm(f2, "Form2");
        }

        private void button2_Click(object sender, EventArgs e)
        {
            ShowForm(f3, "Form3");
        }

        private void button3_Click(object sender, EventArgs e)
        {
            ShowForm(f99 , "Form99");
        }

        private void ShowForm(Form f, string t)
        {
            if (t == "Form2")
                f = new Form2();

            if (t == "Form3")
                f = new Form3();

            if (t == "Form99")
                f = new Form99();

            f.Show();

        }



Возможно ли как нибудь реализовать функцию ShowForm без этого бесконечного ветвления (что бы когда появятся новые формы не приходилось переписывать функцию).
передавать в функцию уже инициализированную форму не подходит т.к. на практике в функции много условий и прочего изза чего в части случаев нет необходимости создавать форму и занимать ей память.
...
Рейтинг: 0 / 0
15.01.2013, 17:41
    #38111154
Абсолют
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как реализовать динамический выбор конструктора ?
M.ViДоброго времени суток

Доброго.

M.ViВозможно ли как нибудь реализовать функцию ShowForm

Возможно.

Код: c#
1.
2.
3.
4.
5.
6.
private void ShowForm<T>()
where T: Form, new ()
{
var form = new T();
...
}
...
Рейтинг: 0 / 0
15.01.2013, 19:45
    #38111349
M.Vi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как реализовать динамический выбор конструктора ?
Абсолют, спасибо работает!

Вдруг кому пригодится вот измененный код

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
        private void button1_Click(object sender, EventArgs e)
        {
           ShowForm<Form2>();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            ShowForm<Form3>();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            ShowForm<Form99>();
        }

        private void ShowForm<T>()
        where T: Form, new ()
        {
            var form = new T();
            form.Show();
        }
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как реализовать динамический выбор конструктора ? / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]