代码中的+= ( s, e )
究竟是什么?
示例:
this.currentOperation.Completed += ( s, e ) => this.CurrentOperationChanged();
答案 0 :(得分:21)
这是使用Lambda表达式附加事件处理程序的方法。
例如:
button.Click += new EventHandler(delegate (Object s, EventArgs e) {
//some code
});
可以使用lambda重写如下:
button.Click += (s,e) => {
//some code
};
有一点需要注意。没有必要写's'和'e'。您可以使用任意两个字母,例如
button.Click += (o,r) => {};
第一个参数表示触发事件的对象,第二个参数表示可以在事件处理程序中使用的数据。
答案 1 :(得分:5)
此代码以Lambda表达式的形式添加事件侦听器。 s
代表发件人,e
代表 EventArgs 。
private void Listener(object s, EventArgs e) {
}
答案 2 :(得分:3)
这是一个委托实例(lambda表达式的开头)到事件调用列表的赋值。 s, e
代表事件委托类型的sender
和EventArgs
参数。
有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/ms366768.aspx。
答案 3 :(得分:3)
它是事件处理程序的简写。 s - >对象发送者和 e - >某种类型的EventArgs。
它也可以重写为:
public void HandlerFunction(object sender, EventArgs e)
{
this.loaded = true;
}