Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
172 / 118 / 57
Регистрация: 08.01.2013
Сообщений: 664

Как создать массив параметризованный классов?

21.04.2019, 18:07. Показов 1479. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть параметризованный класс
C#
1
2
3
4
    class MyForm<T> where T : new()
    {
        public T form = new T();
    }
в проекте есть несколько настроенных форм, в качестве аргумента будет передаваться названия этих форм.
Можно ли form_one, form_two, form_three впихнуть в массив или list
C#
1
2
3
Form1 form_one = new Form();
Form2 form_two = new Form2();
Form3 form_three = new Form3();
Если можно, то желательно без использования var

Добавлено через 5 минут
Опечатка:
C#
1
Form1 form_one = new Form1();
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.04.2019, 18:07
Ответы с готовыми решениями:

Создать параметризованный класс, содержащий три закрытых поля-массива (одномерный, двумерный и вложенный)
Здравствуйте. У меня возникли проблемы. Я работаю в C# MVS 2010 Вот задание: Разработать приложение WindowsForms. Создать...

Создать параметризованный класс данных (шаблон) — массив данных о студентах
Помогие пожалуйста перевести программу с C напсанную в Visual Studio 6.0 на C++ для компиляции в Visual Studio 2008. /* Создать...

Как создать двумерный массив объектов классов?
Здравствуйте уважаемые форумчане :) Не знаю как заполнить массив чанками, выдает ошибку No matching function for call to Chunk::Chunk(),...

8
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18294 / 14218 / 5368
Регистрация: 17.03.2014
Сообщений: 28,896
Записей в блоге: 1
21.04.2019, 18:43
Цитата Сообщение от bloomder Посмотреть сообщение
Можно ли form_one, form_two, form_three впихнуть в массив или list
C#
1
2
3
4
5
Form[] forms = {
    new Form1(),
    new Form2(),
    new Form3()
};
Неясно только при чем тут обобщенный класс.

Цитата Сообщение от bloomder Посмотреть сообщение
Если можно, то желательно без использования var
Чем он провинился?
0
172 / 118 / 57
Регистрация: 08.01.2013
Сообщений: 664
21.04.2019, 19:50  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
C#
1
2
3
4
5
6
Form[] forms = 
{
   new Form1(),
   new Form2(),
   new Form3()
};
А в цикле как проделать, чтобы не писать десятки, сотни форм
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Чем он провинился?
При создании его, нужно инициализировать

Добавлено через 8 минут
В цикле имею ввиду, если в проекте сотни настроенных форм, и они пронумерованы от Form2 до Form100.

Добавлено через 13 минут
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Неясно только при чем тут обобщенный класс.
Я думаю в него можно передать класс в формы в цикле, что упрощает писанину кода. Вопрос в этом как этот экземпляр обобщенного класса добавить в массив. Для упрощенного манипулирования экземплярами форм.

Добавлено через 13 минут
Мб поймете мою мысль(Код не работает):
C#
1
2
3
string str="Form1";
ArrayList myArr = new ArrayList();
myArr.Add(new MyForm<str>());
А так работает:
C#
1
myArr.Add(new MyForm<Form1>());
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18294 / 14218 / 5368
Регистрация: 17.03.2014
Сообщений: 28,896
Записей в блоге: 1
21.04.2019, 20:30
bloomder, мысль ясна. Дженерики здесь не помогут. Нужно через reflection получать список наследников Form в своей сборке и создавать их экземпляры через Activator. Код специально не привожу потому что сначала хочется понять зачем тебе сотня форм.
1
172 / 118 / 57
Регистрация: 08.01.2013
Сообщений: 664
21.04.2019, 23:18  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
Код специально не привожу потому что сначала хочется понять зачем тебе сотня форм
Пока проекта нет, но интересно, есть ли такие возможности. Если такие возможности имеются, то я бы их применил, когда придется такой проект пилить. Не подумайте ни чего плохого. Если бы была мысль сделать вирус, я обошелся бы одной формой создавая куча однотипных экземпляров.

Добавлено через 3 минуты
Уникальность форм, под разные задачи

Добавлено через 4 минуты
Я конечно понимаю, можно создать класс одной формы, и кодецом настраивать форму под уникальный экземпляр, тем самым добавив его в массив/коллекцию и манипулируя ими
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18294 / 14218 / 5368
Регистрация: 17.03.2014
Сообщений: 28,896
Записей в блоге: 1
21.04.2019, 23:20
bloomder, я и не привел код не потому что думал ты делаешь вирус, а потому что не хотел давать неверное решение.

Цитата Сообщение от bloomder Посмотреть сообщение
Уникальность форм, под разные задачи
И как из этого вытекает необходимость создания всех форм сразу?
1
172 / 118 / 57
Регистрация: 08.01.2013
Сообщений: 664
21.04.2019, 23:34  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
И как из этого вытекает необходимость создания всех форм сразу?
Хорошо, придумаю пример на ходу. У меня допустим 10 экранов. Я допустим инженер, который работает над геометрией облика кузова машины. На машине установлена, камера и куча датчиков(Температуры, давления вибрации и тому подобное).
И мне нужно, всю эту информации одновременно отобразить, видео в каждой форме и плюс график изменения уникального параметра, для удобства восприятия точной информации.

Добавлено через 4 минуты
Не факт, что такой проект в жизни попадется мне, но мне жутко интересно стало, как можно это реализовать, хотя бы на поверхностном уровне
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18294 / 14218 / 5368
Регистрация: 17.03.2014
Сообщений: 28,896
Записей в блоге: 1
22.04.2019, 21:26
bloomder, это проще сделать одним или несколькими (но не десятками и сотнями) настраиваемыми элементами управления.
0
172 / 118 / 57
Регистрация: 08.01.2013
Сообщений: 664
22.04.2019, 21:33  [ТС]
Цитата Сообщение от OwenGlendower Посмотреть сообщение
bloomder, это проще сделать одним или несколькими (но не десятками и сотнями) настраиваемыми элементами управления.
Как я и говорил брать класс Form и настраивать форму под каждую уникальное окно со своими примочками, и добавляя в генерик.
Но мб такой случай, что проект уже создан каким нить программистом, где очень много форм добавленных вручную и мне придется это все модернизировать. Просто хочу знать есть ли такая возможность и все. Да звучит глупо и нецелесообразная эта идея, но все таки интересно знать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.04.2019, 21:33
Помогаю со студенческими работами здесь

Как создать массив классов внутри другого класса
Как создать массив классов внутри другого класса на Java? можно набросок кода??

Как создать массив из объектов разных классов, имеющих общего предка?
Есть основной класc 'Автомобиль' его наследуют 3 класса: мини вен, купе и седан. Как создать массив объектов класса 'автомобиль' что бы...

Как создать класс контейнер-динамический массив и поместить туда объекты других классов?
Какой тип массива использовать тип базового класса или наследников?

Создать параметризованный метод Sort
Необходимо создать параметризованный метод Sort с параметром – типом данных. Реализовать в нем сортировку методом выбора (алгоритм ее...

Массив разных классов. Как добратся до всех полей этих классов?
Все классы имеют общего предка. Экземпляры этих классов запихнуты в один массив нужно както добраться до полей и методов которые...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru