C#中foreach遍历集合中 类型区分问题

来源:百度知道 编辑:UC知道 时间:2024/05/25 01:01:47
foreach (object var in students) //students是ArrayList对象
{
if (var is Person)
{
Person stups = (Person)var;
Console.WriteLine(stups.Name + "是Person类型");
stups.Show();//Person类中的一个方法,输出显示
}
else if(var is Student)
{
Student stusd = (Student)var;
Console.WriteLine(stusd.Name + "是Student类型");
stusd.Show();
}

}
现在的问题是:执行那个结果全部都是Person类型 Else语句块不能执行

就换了一下位置就OK额~!

-_-!我郁闷~!

我想起来了,我Student类是继承Person类的~!

因为student 也是person嘛,所以全都是person喽

改一下
foreach (object var in students) //students是ArrayList对象
{
if(var is Student)
{
Student stusd = (Student)var;
Console.WriteLine(stusd.Name + "是Student类型");
stusd.Show();
}
else if (var is Person)
{
Person stups = (Person)var;
Console.WriteLine(stups.Name + "是Person类型");
stups.Show();//Person类中的一个方法,输出显示
}
这样就OK了