众所周知,您应该声明作为参数的事件(object sender, EventArgs args).为什么?
Gre*_*man 22
这使得消费开发人员能够为多个事件编写单个事件处理程序,而不管发件人或事件如何.
编辑:为什么你需要一个不同的模式?您可以继承EventArgs以提供任意数量的数据,并且更改模式只会使任何被迫使用此新模式的开发人员感到困惑和沮丧.
use*_*288 11
实际上,这是否是做事件的最佳实践方式是有争议的.有一种思想流派,因为事件旨在将两段代码分离,事件处理程序获取发送者这一事实,并且必须知道将发送者强制转换为什么类型才能对其执行任何操作.图案.
对事件传递的数据使用单个参数 EventArgs 允许您在软件的未来版本中向事件添加数据,而不会破坏现有消费者。您只需将新成员添加到现有的 EventArgs 派生类,或使用新成员创建派生类。
否则一致性和最小意外原则证明使用 EventArgs 来传递数据是合理的。
至于发送方,在某些(但不是全部)情况下,了解发送事件的类型很有用。对发送方参数使用对象以外的类型过于严格:这意味着其他发送方无法重用相同的事件签名。
| 归档时间: |
|
| 查看次数: |
17136 次 |
| 最近记录: |