我有一个基类和一些派生类
public class MyBase {...}
public class MyClass1 : MyBase {...}
public class MyClass2 : MyBase {...}
现在,我要列出这些派生类的列表(类!不是类的实例!),然后我要随机创建这些派生类之一的一个实例。
这是如何运作的??
这是我想要的伪C#:)
List<MyBase> classList = new List<MyBase> () { MyClass1, MyClass2, MyClass3, ...}
MyBase randomInstance = new classList[random.Next(0,classList.Count-1)]();
(不幸的是,此List结构需要MyBase的实例,但不能使用类名)
最佳答案
类似于(假设一个无参数的构造函数,并且B和C从A派生):
List<Type> types = new List<Type> { typeof(A), typeof(B), typeof(C) };
A instance = (A)Activator.CreateInstance(types[r.Next(0, types.Count)]);