首页 > 解决方案 > 从派生类引用c#访问基类的虚方法

问题描述

当该类作为参数传递给静态方法时,我试图从其派生类访问该方法的基本实现。在下面的示例中,我希望控制台在调用 Child.WriteSomthing() 时写入“This is Parent ...”。

就目前而言,它递归地调用 Child.WriteSomthing() 。有什么办法可以做到这一点?

public class Parent
{
     public virtual void WriteSomething()
     {
          Console.WriteLine("This is Parent...");
     }

public class Child : Parent
{
     public override void WriteSomething()
     {
          Helpers.SomeHelper(3, this);
     }
}

public static class Helpers
{
     public static void SomeHelper(int i, Child child)
     {
          switch (i)
          {
               case 1:
               Console.WriteLine("Child 1...");
               break;
               case 2: 
               Console.WriteLine("Child 2...");
               break;
               default: (Parent)child.WriteSomething();
          }
     }
}

标签: c#

解决方案


推荐阅读