是否可以将事件处理程序直接放入函数

本文关键字:函数 程序 事件处理 是否 | 更新日期: 2023-09-27 18:37:08

我有一个wpf c#app。

我在用户控件

中声明了一个事件,并且我的用户控件已加载到主窗口中。

在我的代码{适当的地方)中,我将事件处理程序定义为一个函数,如下所示:

    MyUserControl.MyEvent += Myfunction;

void Myfunction(object someData)
{
   //do something
}

为了使事情变得"更干净",我想做这样的事情:

MyUserControl.MyEvent +=> Myfunction(someData);

显然,这不会编译,但我把它放进去试图说明我想要什么......

是否可以将事件处理程序直接放入函数

我认为您正在尝试为您的事件创建一个 lambda

MyUserControl.MyEvent += (object o) => Myfunction(someData);

诀窍在于它必须与事件的委托签名匹配,在您的情况下,这将是一个采用object并且不返回任何内容的方法。 请注意,这样做会忽略事件发送的object