170 похожих чатов

Всем привет! Пытаюсь оптимизировать код. Может кто подскажет: class A1: IClass{...} class A2:

IClass{...}
...
class An: IClass{...}

есть список:
List<IClass> list= new();

Который заполняется вот так:
list.Add(new A1());
list.Add(new A2());
...
list.Add(new An());

Вот это заполнение хочется привести к одному универсальному коду ,который сам заполняет list всеми экз.классов,кот. унаследованы от IClass..
Пробовал через рефлексию, но почему-то видны не все классы,
может быть есть нормальный способ...кто знает ?

4 ответов

4 просмотра

Например так. Но ты уверен, что тебе оно надо вообще? Есть вариант ещё source generator заюзать.

Вообще, это типичный кейс для DI. DI умеет отдавать все зарегистрированные инстансы-реализации интерфейса, например.

explorer470- Автор вопроса
Anton 『被遗忘的社会』
Например так. Но ты уверен, что тебе оно надо вооб...

Спасибо! То, что надо.. Уверен или нет - мне кажется, что это упрощает добавление новых типов ... На счёт генератора..ух, сложновато пока, но тема интересная, буду изучать

Чет пахнет говном, но твой путь через рефлексию

Похожие вопросы

Обсуждают сегодня

А чем вам питонисты не угодили?😂
.
79
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Anyone knows how to build this widget in Flutter? I have all the assets for round stations and the road, but how can I make the my widget animate between these stations? And h...
Mohammad Zamani
9
короче я не выдержал постоянно определять структуры, чтобы возвращать массивы разных типов. Как обычно еще это делают?
Павλо 🇺🇦
7
Если у очереди установлено x-message-ttl, при получении сообщения из этой очереди, можно узнать остаток времени жизни сообщения?
Сергей
8
Подскажите как мне лучше держать websocket сединение и переодически передавать в него данные? Сначала я сделал так: for _ in 1...1000 { try? await ws.send("test") try...
Mihail Verenich
2
Ты просто гитлеровскую эстетику плохо понимаешь. Он же всё под Цезаря делал. А это как бы запрещённый приём в политике. Пиджаки они зачем все носят? Чтобы показать что они тип...
Ivan Kropotkin
4
А цены чем оправданы?
Lencore
7
Карта сайта