C# 类型安全MySchool 项目中的 Teacher 对象操作与遍历问题
类型安全1:在 MySchool 项目中新增一个 Teacher
类并创建 Teacher jacky = new Teacher("成龙龙", 4);
,通过 jacky.SayHi();
方法让 Teacher
对象打招呼。随后将 jacky
添加到 students
集合:students.Add(jacky);
。在执行遍历时,代码如下:
foreach (Object stuo in students) {
Student stu = (Student)stuo;
Console.WriteLine(stu.Name);
}
是否能够加入 Teacher
对象?可以,但 在遍历集合时会发生错误。在代码中,students
集合被假设为仅包含 Student
类型对象,因此直接强制转换 stuo
为 Student
类型将引发 InvalidCastException
异常。
演示代码改进:要避免此类错误,可以通过类型判断进行安全的转换操作:
foreach (Object stuo in students) {
if (stuo is Student stu) {
Console.WriteLine(stu.Name);
} else {
Console.WriteLine("非学生对象,跳过遍历。");
}
}
6.71MB
文件大小:
评论区