2016-11-16 76 views
0

创建事件时,发送EventArgs对象作为第二个参数是标准操作。但是,事件往往只需要发送一个数据,比如一个字符串或int。据我所知,你不能真正对EventArgs类做任何事情。在没有EventArgs的情况下创建事件

那么是否真的有必要创建一个带有一个字段的全新类,以仅用于发送带有事件的简单字符串/ int?

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

VS

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

JoinButtonEventArgs是与场的一类称为buttonId

+0

它是否编译?那么这是没有必要的。 –

+0

看看这个:http://stackoverflow.com/questions/3312134/does-net-have-a-built-in-eventargst – n8wrl

回答

1

不,您的代码不需要编译;但编码公约是明智的,它是一个好主意。

这次你只关心一个变量,但是如果你将来需要另一个变量,你必须更新所有的旧代码来获得一个附加参数,而不是只在需要的时候向中心类添加另一个属性新。 (由于事件不是多态的,不能像方法一样重写,对于相同的方法名称有不同的参数)

相关问题