Создание объекта со случайно выбранным из определённого перечня типом. Возможно ли на С# - C#

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

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

Здравствуйте! Собственно мой вопрос уже изложен в заголовке. А задачу я, собственно, перед собой поставил следующую: Есть некий класс, от него наследуют ещё несколько классов. Так вот, я хочу случайным образом заполнить List с типом базового класса объектами классов-наследников со случайно сгенерированными значениями полей. Более изящного решения в голову не приходит. Просто не хочется создавать кучу листов с соответствующими типами. Возможно ли осуществить задуманное?

Решение задачи: «Создание объекта со случайно выбранным из определённого перечня типом. Возможно ли на С#»

textual
Листинг программы
        abstract class Base {}
        
        class A : Base {}
 
        class B : Base {}
 
        public static void Main(string[] args)
        {
            var list = new List<Base>();
 
            var listOfDerived = (from assm in AppDomain.CurrentDomain.GetAssemblies()
                                 from type in assm.GetTypes()
                                 where typeof(Base).IsAssignableFrom(type) && !type.IsAbstract
                                 select type).ToArray();
 
            Random rand = new Random();
 
            int count = listOfDerived.Length;
            for (int i = 0; i < 10; i++)
            {
                Base temp = Activator.CreateInstance(listOfDerived[rand.Next(0, count)]) as Base;
                list.Add(temp);
            }
 
        }

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


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

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

8   голосов , оценка 4 из 5
Похожие ответы