什么时候应该做以下事情?

class Foo : Control
{
    protected override void OnClick(EventArgs e)
    {
        // new code here
    }
}

与此相反?
class Foo : Control
{
    public Foo()
    {
        this.Click += new EventHandler(Clicked);
    }

    private void Clicked(object sender, EventArgs e)
    {
        // code
    }
}

最佳答案

覆盖而不是附加委托(delegate)将产生更高效的代码,因此通常建议您始终在可能的情况下执行此操作。有关更多信息,请参阅 this MSDN article。这是一个相关的报价:

关于c# - 什么时候应该重写 OnEvent 而不是在继承时订阅事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/159317/

10-13 04:25