创建没有EventArgs的事件

本文关键字:事件 EventArgs 创建 | 更新日期: 2023-09-27 18:18:10

创建事件时,发送EventArgs对象作为第二个参数是标准的。然而,通常情况下,事件可能只需要发送一段数据,例如字符串或int。据我所知,你不能用基本的EventArgs类做任何事情。

所以它真的有必要创建一个全新的类与一个字段只是为了发送一个简单的字符串/int与一个事件?

例子
public delegate void JoinButtonEvent(object sender, string buttonId);

public delegate void JoinButtonEvent(object sender, JoinButtonEventArgs e);

其中JoinButtonEventArgs为类,字段为buttonId

创建没有EventArgs的事件

不,你的代码没有必要编译;但是按照编码惯例,这是个好主意。

当然,这次你只关心一个变量,但是如果你将来需要另一个变量,你必须更新所有的旧代码来增加一个额外的参数,而不是在你需要新东西的时候给中心类添加另一个属性。(由于事件不是多态的,并且不能像方法那样被覆盖,以便为相同的方法名称具有不同的参数)