我正在处理一个项目,它包含一个main类,一个父类和3个子类。现在我把它设置为程序运行时。我将每个子类的每个值存储在三个单独的arrayliats中。我需要这样做,所以我只使用一个arraylist和多态。我该怎么做呢?
答案 0 :(得分:0)
只需使用List<ParentClass>
代替3个数组列表。
public class ParentClass {...}
public class ChildClass1 : ParentClass {...}
public class ChildClass2 : ParentClass {...}
public class ChildClass3 : ParentClass {...}
var list = new List<ParentClass>();
var child1 = new ChildClass1();
var child2 = new ChildClass2();
var child3 = new ChildClass3();
list.Add(child1);
list.Add(child2);
list.Add(child3);
当您从列表中读取您的孩子时,您可以使用“是”或“作为”来确定其类型。
if (list[0] is ChildClass1)
{
}
ChildClass1 child1 = list[0] as ChildClass1;
// child1 will be null if list[0] is not a ChildClass1