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

为什么C#中的事件需要(sender,EventArgs)?

如何解决《为什么C#中的事件需要(sender,EventArgs)?》经验,为你挑选了3个好方法。

众所周知,您应该声明作为参数的事件(object sender, EventArgs args).为什么?



1> Greg Hurlman..:

这使得消费开发人员能够为多个事件编写单个事件处理程序,而不管发件人或事件如何.

编辑:为什么你需要一个不同的模式?您可以继承EventArgs以提供任意数量的数据,并且更改模式只会使任何被迫使用此新模式的开发人员感到困惑和沮丧.


我通常只是在处理程序中传递我需要的任何东西.如果我需要一个没有信息的活动,我宣布它无效.如果我需要给事件1特定的对象,我就单独传递.这不是我有一个不同的模式,我只是不确定模式的必要性(外部框架代码).
你传递了*你需要的东西,但这是不必要的灵活性,打破了既定的最佳实践,没有任何功能上的任何好处.
因此,创建一个继承自EventArgs的DCEventArgs类,并依赖于您的自定义DC类.

2> user6288..:

实际上,这是否是做事件的最佳实践方式是有争议的.有一种思想流派,因为事件旨在将两段代码分离,事件处理程序获取发送者这一事实,并且必须知道将发送者强制转换为什么类型才能对其执行任何操作.图案.


事件不是为了解耦任何事情.它们旨在提供通知,**不再是**.从MSDN - _"事件使类或对象能够在感兴趣的事情发生时通知其他类或对象"_

3> Eric Z Beard..:

因为无论语言如何,它都是任何回调机制的良好模式.您想知道谁发送了事件(发件人)和与事件相关的数据(EventArgs).

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