我的某个类上有一个事件,我想附加一个处理程序。但是,我不需要处理程序来做任何事情,因为我只是测试附加或不附加处理程序的类的行为。
事件签名如下:
public event EventHandler<EventArgs> Foo;
所以我想做点什么:
myClass.Foo += ();
然而,这不是有效的lambda表达式。表达这一点最简洁的方式是什么?
答案 0 :(得分:28)
myClass.Foo += (s,e) => {};
或
myClass.Foo += delegate {};
答案 1 :(得分:9)
(x,y) => {} //oops forgot the params
行? :)
或
delegate {}
答案 2 :(得分:6)
试试这个:
myClass.Foo += delegate {};
答案 3 :(得分:5)
不是在事后附加委托,更常见的方法是立即分配:
public event EventHandler<EventArgs> Foo = delegate {};
我更喜欢在lambda表达式上使用匿名方法语法,因为它可以处理各种不同的签名(不可否认,那些签名不是out
或返回值)。
答案 4 :(得分:3)
试试这个:
myClass.Foo += (s,e) => {};
答案 5 :(得分:1)
通过像这样的lambda附加事件:
myClass.Foo += (o, e) => {
//o is the sender and e is the EventArgs
};