【发布时间】:2010-06-09 15:53:22
【问题描述】:
我有一个名为“ClassA”的超类和两个子类“Class1”和“Class2”。
我有一个包含“Class1”和“Class2”对象的列表,该列表属于“ClassA”类型。
我想通过执行类似的操作仅循环列表中的“Class1”对象
List<ClassA> AList = new List<ClassA>;
AList.Add(new Class1());
AList.Add(new Class2());
foreach (Class1 c1 in AList)
{
// Do Something
}
但是当我这样做时,代码会在到达非“Class1”类型的对象时引发异常。
如何以简单的方式完成此操作,而无需检查列表中对象的类型并在其类型是否正确时进行转换。像这样:
foreach (ClassA cA in AList)
{
if (cA.GetType() == typeof(Class1))
{
// Do Something
}
}
【问题讨论】:
标签: c# .net inheritance