C#里氏转换is & as关键字使用示例

小鱼儿 2022-12-03 13:14 170阅读 0赞
  1. using System;
  2. using System.Collections.Generic;
  3. namespace oop05_里式转换
  4. {
  5. class Program
  6. {
  7. static void Main(string[] args)
  8. {
  9. // is使用示例
  10. Person subStu = new Student(); // Student类继承自Person类
  11. if (subStu is Student) // 判断subStu中装的是否是Student类
  12. {
  13. Console.WriteLine("该对象别名中装载的[是]同类型的对象!"); // 此句将会在控制台输出
  14. }
  15. else
  16. {
  17. Console.WriteLine("该对象别名中装载的[非]同类型的对象!");
  18. }
  19. Console.WriteLine("\n");
  20. // as使用示例
  21. Student tranStu = subStu as Student; // 类型转换成功,subStu中确实装载的是Student类
  22. if (null == tranStu)
  23. {
  24. Console.WriteLine("类型转换失败,转换结果为null!");
  25. }
  26. else
  27. {
  28. Console.WriteLine("类型转换成功,目标对象:" + tranStu); // 此句将会在控制台输出
  29. }
  30. Console.ReadKey();
  31. }
  32. }
  33. }

Tips:

is 若两个类型之间能够进行转换则返回true,否则返回false。

as 若两个类型之间能够进行转换则返回对应的对象,否则返回null。

发表评论

表情:
评论列表 (有 0 条评论,170人围观)

还没有评论,来说两句吧...

相关阅读

    相关 C#里氏转换(对象转型)

    子类可以赋值给父类:即向上转型,子类对象可以调用父类的成员,但父类对象只能调用自己的成员。 向上转型:子类对象交给父类引用,父类引用指向子类对象。 Eg:Animal