代码中“+ =(s,e)”的含义是什么?

时间:2011-06-30 08:22:15

标签: c#

代码中的+= ( s, e )究竟是什么?

示例:

this.currentOperation.Completed += ( s, e ) => this.CurrentOperationChanged();

4 个答案:

答案 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

的Lambda
private void Listener(object s, EventArgs e) {

}

答案 2 :(得分:3)

这是一个委托实例(lambda表达式的开头)到事件调用列表的赋值。 s, e代表事件委托类型的senderEventArgs参数。

有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/ms366768.aspx

答案 3 :(得分:3)

它是事件处理程序的简写。 s - >对象发送者和 e - >某种类型的EventArgs。

它也可以重写为:

public void HandlerFunction(object sender, EventArgs e)
{
   this.loaded = true;
}