Создание объекта со случайно выбранным из определённого перечня типом. Возможно ли на С# - 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);
}
}