【发布时间】:2017-02-08 18:52:26
【问题描述】:
我有一个基类,以及从它继承的大量子类。我希望创建一个包含这些子类实例中的每一个的列表。目前我必须做的:
List<BaseClass> bigList = new List<BaseClass>;
for (int i = 0; i < 3; i++){
bigList.Add(new A());
bigList.Add(new B());
etc.
其中 A 和 B 是其中的两个子类。有什么方法可以遍历所有类而不必单独声明它们,如下所示:
foreach (Class classname in listOfClasses){
for (int i = 0; i < classname.numberToAdd; i++){
bigList.Add(new classname());
}
}
“类名”实际上等同于 A、B、C 等。
这会有所帮助,因为实际程序更复杂,因为添加的数量取决于所讨论的类(我可能需要四个 A,五个 B,而不是 C 等)。
有没有更好的方法来完全做到这一点? 我是不是必须走很长的路?
【问题讨论】:
-
我的意思是,你可以使用反射,但听起来你有更大的设计问题。
-
您需要使用反射来查找您的类并实例化新对象。
-
@UladzimirPalekh 他没有提到他想要实例化。只返回一个名称列表。
-
另一种解决方案是使用工厂模式,每个不同的子类都绑定到一个数字。
-
这些都在同一个程序集中吗?
标签: c#