首页 > 解决方案 > 我可以从父对象访问子对象变量吗?

问题描述

因此,假设我有一个名为“Animal”的类,它由“Cat”继承。如果我现在有一组动物,我可以以某种方式从中访问 c​​at 变量(如果动物当然也是一只猫)?

标签: c#classvariablesinheritancepolymorphism

解决方案


您可以使用is运算符,

is 运算符检查表达式的结果是否与给定类型兼容,或者(从 C# 7.0 开始)根据模式测试表达式。

foreach(var animal in animals)
{
   if(animal is Cat lovelyCat)
   {
      //You can use lovelyCat as object of Cat
   }
}

注意:操作符从 C# 7.0 版开始is支持模式匹配


推荐阅读