当前位置:  开发笔记 > 编程语言 > 正文

C#中事件处理的首选方法是什么?

如何解决《C#中事件处理的首选方法是什么?》经验,为你挑选了2个好方法。

哪个是在.NET中处理事件的首选/推荐方式:

this.Load += new EventHandler(Form1_Load);
private void Form1_Load(object sender, EventArgs e)
{ }

要么

protected override void OnLoad(EventArgs e)
{
    base.OnLoad(e);
}

每种方法的优缺点是什么?多年来我一直使用这两种方法,并且通常更倾向于第一种方法,因为这是Visual Studio自动创建的用于处理事件的方法.我错过的第二种方法有什么好处吗?



1> Teun D..:

第一种方式是微软建议的.模式是:

    一些代码想要引发事件,调用OnXxx

    OnXxx调用委托

    调用有线事件处理程序

如果您执行第二个模型,您可能会忘记base.OnXxx调用并破坏所有内容.选项2的好处在于您可以决定是在所有其他事件处理程序之前还是之后调用.如果将代码放在base.OnXxx之前,则会在事件发生之前执行.当然第一个模型总是可以使用,第二个模型只有在你提升事件的类的子类时才会使用.



2> Chris Holmes..:

这完全取决于您想要捕获事件的位置以及原因.

第一种方法(连线)适用于您希望其他类处理事件的时间.出于多种原因,您可能需要这样做; 另一个类可以访问执行某些复杂逻辑或其他任何操作的服务.关键是当您希望单独的观察者响应事件时,您使用第一种方法.

第二种方法(覆盖)适用于您希望表单响应的时候,因为它可以; 因为它的责任是本地的.

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有