Вызов метода супербазового класса из производного класса C #

Я пытаюсь вызвать метод базового класса Super из производного класса

public class Base
{
    public virtual void TestFun()
    {
        Console.WriteLine("This is Class Base");
    }
}

public class A : Base
{
    public override void TestFun()
    {
        Console.WriteLine("This is Class A");

        base.TestFun();
    }
}

public class B : A
{
    public override void TestFun()
    {
        Console.WriteLine("This is Class B");

        base.TestFun();
    }
}

public class Program
{
    public static void Main()
    {
        Base obj = new B();

        obj.TestFun();
    }
}

Я получаю результат как

  1. Это класс B
  2. Это класс А
  3. Это классная база

Я хочу знать, как мы можем пропустить вызов функции в A. Это означает, что я хочу вызвать базовую функцию класса из класса B


person Hari Sankar    schedule 24.08.2020    source источник
comment
Отвечает ли это на ваш вопрос? Как вызвать base.base.method ()?   -  person asaf92    schedule 24.08.2020
comment
@ asaf92, Спасибо за ответ. Я не могу изменить код второго уровня (т.е. класса A). у нас есть еще какие-нибудь условия?   -  person Hari Sankar    schedule 24.08.2020
comment
Вызов класса superbase - не лучшая практика. Не могли бы вы сообщить нам, почему вы хотите это сделать?   -  person Sowmyadhar Gourishetty    schedule 24.08.2020
comment
Я хочу знать, как мы можем пропустить вызов функции в A. Это означает, что я хочу вызвать базовую функцию класса из класса B Если у вас есть побуждение сделать это, то ваше дерево наследования неверно. Учитывая комментарий, который вы не можете изменить A, вам, вероятно, потребуется напрямую расширить Base.   -  person Fildor    schedule 24.08.2020
comment
TL; DR; Можно, но не стоит.   -  person Zohar Peled    schedule 24.08.2020
comment
@HariSankar Да, рефакторинг кода   -  person asaf92    schedule 24.08.2020