0

我正在查看某人的代码并具有:

protected override void OnMouseEnter(MouseEventArgs e)
{
    base.OnMouseEnter(e);  //necessary?
    if (...)
}

现在,问题是为什么要调用基类方法?无论如何,这段代码都可以工作。任何的想法?

谢谢。阿米特

4

4 回答 4

3

当您想利用基类实现的功能但又想扩展派生类实现中发生的事情时,将使用基调用。

这可以做一些非常有用的事情,例如设置在基类中定义的属性或处理事件,而无需将样板代码放在每个派生类中。

于 2012-08-10T00:34:11.660 回答
2

因为基类方法具有您可能仍想利用的默认行为。

于 2012-08-10T00:33:25.520 回答
1

根据基类的不同,可能还需要执行其方法以使其按预期运行。调用基本代码几乎是惯例,它可能很重要,特别是如果你不知道它的作用。

于 2012-08-10T00:34:39.680 回答
1

这在很大程度上取决于您要做什么事件处理程序。如果你的基类很复杂并且它做了很多OnMouseEnter()你仍然想保留的事情,那么你应该有那个base.OnMouseEnter(e)调用。如果您想完全“覆盖”该功能,这意味着您知道做什么base.OnMouseEnter(e)并且您不想要它,那么不要调用base.OnMouseEnter(e).

于 2012-08-10T00:35:11.960 回答