arraylists和多态性

时间:2012-02-01 16:57:22

标签: silverlight

我正在处理一个项目,它包含一个main类,一个父类和3个子类。现在我把它设置为程序运行时。我将每个子类的每个值存储在三个单独的arrayliats中。我需要这样做,所以我只使用一个arraylist和多态。我该怎么做呢?

1 个答案:

答案 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