为什么VS自动添加对基类虚方法的调用?

时间:2011-04-08 09:38:28

标签: c# inheritance virtual

拥有这样的代码:

class X
{
    public virtual void Test()
    {
    }
}

class Y : X
{
    public override void Test()
    {
        base.Test()   //added automatically, why?
    }
}

2 个答案:

答案 0 :(得分:4)

因为暗示,这不会破坏任何东西。

答案 1 :(得分:3)

因为在大多数情况下,它是有意义的,甚至需要调用基类实现,例如WinForms中的虚拟Dispose方法(基类需要Disposed)或虚拟OnXXX方法(基类通常从OnXXX方法触发事件)。

当然,如果虚拟方法是你的,你不想要这种行为,我同意这很烦人;)