Как получить список всех потомков класса - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день. У меня есть некоторый абстрактный класс. ОТ него происходят куча других классов. Подскажите пожалуйста, как программно получить список всех потомков данного класса?

Решение задачи: «Как получить список всех потомков класса»

textual
Листинг программы
  1. using System;
  2. using System.Reflection;
  3.  
  4. namespace DerivedTypes
  5. {
  6.     public abstract class AbstractBaseClass
  7.     {
  8.     }
  9.  
  10.     public class DerivedType1 : AbstractBaseClass
  11.     {
  12.     }
  13.  
  14.     public class DerivedType2 : AbstractBaseClass
  15.     {
  16.     }
  17.  
  18.     class MainClass : AbstractBaseClass
  19.     {
  20.         public static void Main (string[] args)
  21.         {
  22.             Type abstractType = typeof(AbstractBaseClass);
  23.             Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies ();
  24.             for (int i = 0; i < assemblies.Length; i++)
  25.             {
  26.                 Type[] types = assemblies [i].GetTypes ();
  27.                 for (int j = 0; j < types.Length; j++)
  28.                 {
  29.                     if (types [j].IsSubclassOf (abstractType))
  30.                     {
  31.                         Console.WriteLine (types [j].FullName);
  32.                     }
  33.                 }
  34.             }
  35.         }
  36.     }
  37. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.786 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут