我正在查看某人的代码并具有:
protected override void OnMouseEnter(MouseEventArgs e)
{
base.OnMouseEnter(e); //necessary?
if (...)
}
现在,问题是为什么要调用基类方法?无论如何,这段代码都可以工作。任何的想法?
谢谢。阿米特
当您想利用基类实现的功能但又想扩展派生类实现中发生的事情时,将使用基调用。
这可以做一些非常有用的事情,例如设置在基类中定义的属性或处理事件,而无需将样板代码放在每个派生类中。
因为基类方法具有您可能仍想利用的默认行为。
根据基类的不同,可能还需要执行其方法以使其按预期运行。调用基本代码几乎是惯例,它可能很重要,特别是如果你不知道它的作用。
这在很大程度上取决于您要做什么事件处理程序。如果你的基类很复杂并且它做了很多OnMouseEnter()
你仍然想保留的事情,那么你应该有那个base.OnMouseEnter(e)
调用。如果您想完全“覆盖”该功能,这意味着您知道做什么base.OnMouseEnter(e)
并且您不想要它,那么不要调用base.OnMouseEnter(e)
.