我有一个基类和一些派生类

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)]);

10-02 02:09
查看更多