我在我的一个类上有一个事件,我想附加一个处理程序.但是,我不需要处理程序来做任何事情,因为我只是测试附加或不附加处理程序的类的行为.
事件签名如下:
public event EventHandler<EventArgs> Foo;
Run Code Online (Sandbox Code Playgroud)
所以我想做一些事情:
myClass.Foo += ();
Run Code Online (Sandbox Code Playgroud)
但是,这不是有效的lambda表达式.表达这种最简洁的方式是什么?
Mat*_*lls 30
myClass.Foo += (s,e) => {};
Run Code Online (Sandbox Code Playgroud)
要么
myClass.Foo += delegate {};
Run Code Online (Sandbox Code Playgroud)
(x,y) => {} //oops forgot the params
Run Code Online (Sandbox Code Playgroud)
好?:)
要么
delegate {}
Run Code Online (Sandbox Code Playgroud)
而不是之后附加委托,更常见的方法是立即分配它:
public event EventHandler<EventArgs> Foo = delegate {};
Run Code Online (Sandbox Code Playgroud)
我更喜欢在lambda表达式上使用匿名方法语法,因为它可以使用各种不同的签名(当然不是那些带out
参数或返回值的签名).