如何在为事件分配委托时附加EventArgs/custom params?

Pen*_*m10 3 c#

我有这个代码:

this.form.Resize += new EventHandler(form_Resize);
Run Code Online (Sandbox Code Playgroud)

但是我想分配一些对象以供以后访问,form_Resize我该怎么做?

我是否可以访问EventArgs中的数据?

Tom*_*cek 7

您不能"为委托"分配其他数据,但您可以创建方法的参数化版本,form_Resize然后使用lambda表达式(在C#3+中)或匿名委托(C#2+)在附加处理程序时指定其他数据.写这个的一种方法如下:

void form_Resize(object sender, EventArgs e, Data additional) {
  // 'additional' contains whatever you specified when attaching handler
}

this.form.Resize += (s, e) => form_Resize(s, e, yourAdditionalData);
Run Code Online (Sandbox Code Playgroud)