C# “是什么意思?”+;=(s,e)“;在代码中?
代码中的C# “是什么意思?”+;=(s,e)“;在代码中?,c#,C#,代码中的+=(s,e)到底是什么 例如: this.currentOperation.Completed+=(s,e)=>this.CurrentOperationChanged()这是使用Lambda表达式附加事件处理程序的方法 例如: button.Click += new EventHandler(delegate (Object s, EventArgs e) { //some code }); 可以使用lambda重写,如下所示: button
+=(s,e)
到底是什么
例如:
this.currentOperation.Completed+=(s,e)=>this.CurrentOperationChanged()代码>这是使用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) => {};
第一个参数将表示触发事件的对象,第二个参数将保存可在eventhandler中使用的数据。这是将委托实例(lambda表达式的开头)分配给事件调用列表。s,e
表示事件委托类型的sender
和EventArgs
参数
有关详细信息,请参阅。此代码以Lambda表达式的形式添加事件侦听器s
代表发送方,e
是事件参数。兰姆达
private void Listener(object s, EventArgs e) {
}
它是事件处理程序的简写。
s-->对象发送器和
e-->某些类型的事件参数
也可以将其重新干燥为:
public void HandlerFunction(object sender, EventArgs e)
{
this.loaded = true;
}
你能提供多一点代码吗?+=是加法赋值运算符。我知道我添加的行是调用CurrentOperationChanged方法,以防调用this.currentOperation.Completed。但是为什么我需要“s”和“e”?