Итак, я хочу сделать это, чтобы любой подкласс, который я делаю из базового класса, реализует статическую функцию void initiaze () . Я хотел сделать это, чтобы я мог назвать все эти функции, не добавляя вручную для каждого класса. Что -то подобное < /p>
foreach(class in classList)
{
class.Initialize();
}
< /code>
Я искал способы сделать это, я видел System.reflection как потенциальный способ сделать это, но мне было интересно, был ли лучший вариант. Это то, что, казалось, думали некоторые люди, с которыми я разговаривал, но они не могли объяснить, какой этот вариант был < /p>
, поэтому я сделал рабочую версию с System.reflection, которая действительно функционировала, как и ожидалось. Так же, как я сказал, что мне интересно, есть ли лучший способ сделать это. Как то, как я это сделал, требуется, чтобы все классы, которые я хочу, и Pinitiaze () , чтобы быть в одной папке и, чтобы имя файла была такой же, как и имя класса. Проект для этого в идеале станет библиотекой, поэтому я хотел сделать его более абстрактным, чтобы люди могли использовать свои собственные форматы для файлов и классов. Например, если они хотели разместить несколько классов в один файл. Если есть лучший способ, я найду, я обновлю его < /p>
Type baseType = typeof(IFoo);
Assembly assembly = typeof(IFoo).Assembly;
List types = assembly.GetTypes().Where(t => t.IsClass && t.GetInterface("IFoo") != null).ToList();
Подробнее здесь: https://stackoverflow.com/questions/796 ... h-subclass
Выполните статическую функцию, которую реализуют все подклассы для каждого подкласса [закрыто] ⇐ C#
Место общения программистов C#
1751848199
Anonymous
Итак, я хочу сделать это, чтобы любой подкласс, который я делаю из базового класса, реализует статическую функцию void initiaze () . Я хотел сделать это, чтобы я мог назвать все эти функции, не добавляя вручную для каждого класса. Что -то подобное < /p>
foreach(class in classList)
{
class.Initialize();
}
< /code>
Я искал способы сделать это, я видел System.reflection как потенциальный способ сделать это, но мне было интересно, был ли лучший вариант. Это то, что, казалось, думали некоторые люди, с которыми я разговаривал, но они не могли объяснить, какой этот вариант был < /p>
, поэтому я сделал рабочую версию с System.reflection, которая действительно функционировала, как и ожидалось. Так же, как я сказал, что мне интересно, есть ли лучший способ сделать это. Как то, как я это сделал, требуется, чтобы все классы, которые я хочу, и Pinitiaze () , чтобы быть в одной папке и, чтобы имя файла была такой же, как и имя класса. Проект для этого в идеале станет библиотекой, поэтому я хотел сделать его более абстрактным, чтобы люди могли использовать свои собственные форматы для файлов и классов. Например, если они хотели разместить несколько классов в один файл. Если есть лучший способ, я найду, я обновлю его < /p>
Type baseType = typeof(IFoo);
Assembly assembly = typeof(IFoo).Assembly;
List types = assembly.GetTypes().Where(t => t.IsClass && t.GetInterface("IFoo") != null).ToList();
Подробнее здесь: [url]https://stackoverflow.com/questions/79690360/execute-a-static-function-that-all-subclasses-implement-for-each-subclass[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия