Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
3 / 2 / 2
Регистрация: 26.05.2021
Сообщений: 150

Как создать объект класса через имя?

07.06.2021, 22:22. Показов 1840. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть первый код, где есть некий класс Car; можно ли используя строку в качестве имени объекта, создать этот объект, и если да, то как? Приблизительный пример ниже.
Ну и в целом, можно ли создавать объекты, используя входную строку как имя, при условии, что сама входная строка неизвестна, и как? В данном случае я пытаюсь отправить уже готовое имя, но нужен способ реализации, при которой вместо имени будет переменная с присвоенным значением (строкой?)

C#
1
2
3
4
5
6
7
8
public void Main()
{
CreateCar("Volvo");
}
public void CreateCar(string name)
{
Car name = new Car(); // 
}
В общем, чтобы не было так:
C#
1
2
3
4
5
6
7
8
9
10
private void CreateNodes()
{
Car a = new Car ();
Car c = new Car ();
Car d = new Car ();
Car e = new Car ();
Car f = new Car ();
Car g = new Car ();
Car h = new Car ();
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
07.06.2021, 22:22
Ответы с готовыми решениями:

Создать объект класса, зная имя класса, а параметры получать из формы
У меня есть форма, на которой есть Combobox, в котором можно выбрать класс. При выборе одно из айтемов, на форме добавляются поля ввода, в...

Создать объект, зная только имя класса и параметры, передаваемые конструктору
Сабж. Допустим дано String className="PC"; int p1=1; int p2=2; int p3=3; Как создать объект, аналогичный данномуPC obj = new...

Создать объект, взяв имя его класса из переменной типа String?
Привет всем! Братцы, подскажите, ато у самого не получается... Есть ParentClass и несколько СhildClass extends ParentClass,...

5
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
07.06.2021, 22:28
а зачем такое понадобилось? если же без этого никуда, то с архитектурой не очень, очень не очень...
0
628 / 392 / 135
Регистрация: 06.03.2017
Сообщений: 1,469
07.06.2021, 22:30
Цитата Сообщение от Pandamonk Посмотреть сообщение
В общем, чтобы не было так:
можно сделать вот так
C#
1
2
3
4
private void CreateNodes(int c)
{
   List<Car> cars = new();
}
1
3 / 2 / 2
Регистрация: 26.05.2021
Сообщений: 150
07.06.2021, 22:32  [ТС]
Пока что сам не знаю, просто интересно, можно ли такое реализовать. В таких случаях используют просто листы\списки объектов? К ним нет возможности обращаться именно по имени т.к. они не имеют имя, верно? (кроме тех случаев, когда идет обращение к полю, типа item in cars.Where(x => x.name = что-то там, где name - просто поле)
0
3566 / 2507 / 1174
Регистрация: 14.08.2016
Сообщений: 8,219
07.06.2021, 22:34
Pandamonk, а если у тебя будет таких каров штук 300? ты сам то в них не запутаешься?
разного рода коллекции/массивы не просто так придуманы...
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,575
07.06.2021, 23:52
Цитата Сообщение от Pandamonk Посмотреть сообщение
К ним нет возможности обращаться именно по имени т.к. они не имеют имя
Зато можно по индексу...

Можно добавить в Car поле Name и по нему делать поиск в List<Car>... По моему самый оптимальный вариант...

Еще можно использовать словарь, где ключ имя, а значение сам объект...

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
Dictionary<string, Car> cars = new Dictionary<string, Car>();
 
public void CreateCar(string name)
{
   cars[name] = new Car();
}
 
 
void OtherMethod(string name)
{
    Car car = cars[name];
    // ???
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.06.2021, 23:52
Помогаю со студенческими работами здесь

Создать объект класса Щенок, используя классы Животное, Собака. Методы: вывести на консоль имя, подать голос, прыгать, б
Создать объект класса Щенок, используя классы Животное, Собака. Методы: вывести на консоль имя, подать голос, прыгать, бегать, кусать.

Как асинхронно через объект класса вызвать функцию класса?
Есть класс с именем Script с функцией run_task Я хочу вызвать функцию класса асинхронно несколько раз через объект класса Единственными...

Как преобразовать объект если есть только имя класса
Добрый день, столкнулся с проблемой что не могу преобразовать объект если у нас известно только имя класса в String? Есть кусочек...

Создать объект класса Card как поле для класса Menu
Не могу создать объект класса Card как поле для класса Menu. Пробывал создавать объект класса Card в main, создавать внутри класса Menu...

Можно ли создать объект класса с таким же именем как у самого класса?
Можно ли создать объект класса с таким же именем как у самого класса? Ну или как то обойти эту проблему?


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru