如何让基类调用它的虚函数?

时间:2014-07-15 03:20:10

标签: c#

例如,在以下程序中,我希望entrypoint()中的A能够在doThis中呼叫A,但它会在B中调用doThis这是实例类型。我怎样才能实现我的目标?

void Main()
{
    A a = new B();
    a.entrypoint();
}

public class A
{
    public void entrypoint()
    {
        this.doThis(); //doesn't call A::doThis()
    }

    public virtual void doThis()
    {
        Console.WriteLine ("From A");
    }
}

public class B : A
{
    public override void doThis()
    {
        Console.WriteLine ("From B");
    }
}

编辑:How can I call the 'base implementation' of an overridden virtual method?类似,但我从基类调用基本实现而不是主。

编辑:类似于How do we call a virtual method from another method in the base class even when the current instance is of a derived-class?

1 个答案:

答案 0 :(得分:4)

正确的方法可能是,如果你不需要覆盖它,就不要调用虚方法。我建议制作一个私人方法来做你想做的事。