Выполните статическую функцию, которую реализуют все подклассы для каждого подкласса [закрыто]C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Выполните статическую функцию, которую реализуют все подклассы для каждого подкласса [закрыто]

Сообщение 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();


Подробнее здесь: https://stackoverflow.com/questions/796 ... h-subclass
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»