在系统中,我们可能会有很多自定义的事件,那么事件多了,就会定义很多的delegate,这会给代码可读性带来灾难。
在.net中,我们可以继承EventArgs,并使用泛型来定义一个通用的参数类。
public class ParameterEventArgs<T> : EventArgs
{
public T Parameter
{
get;
set;
}
}
其中T可以是任意类型。类。
如下使用:
public event EventHandler<ParameterEventArgs<object>> ModuleCommand;
protected void FireModuleCommand(ModuleCommandType command)
{
if (this.ModuleCommand != null)
{
this.ModuleCommand(this, new ParameterEventArgs<object>() { Parameter = command });
}
}