继承和传递参数

cab*_*oad 2 c# oop

让我们说我有班级家长

       public class Parent
       {
         //several properties... P1,P2..etc
       }
Run Code Online (Sandbox Code Playgroud)

另一堂课

      public class Child:Parent
      {
       //several new properties C1,C2..etc
      }
Run Code Online (Sandbox Code Playgroud)

是否可以编写一个可以接受父类型或子类型为A的函数?

     private void DoSomething( Child/Parent A, bool IsParent) 
     {
      //process additional child properties if IsParent is false
     }
Run Code Online (Sandbox Code Playgroud)

Bra*_*NET 6

由于继承,类型的参数Parent始终接受类型的对象Child.

实际上,更大的问题IsParent.如果不检查您的子类型是否属于任何类型,则无法确定.因为基类型不应该知道它们的推导,所以你不会那样做.

更倾向于; 你会这样做DoSomething virtual,你可以在每个派生类中有不同的实现.