有人请写下这段代码:
this.Loaded + =(s,e)=> this.loaded = true;
到几个代码行,所以我可以追溯其含义?
在我的代码示例中,没有 s 或 e ?
答案 0 :(得分:7)
这可能会让它更清晰,只需重命名:
this.Loaded += (sender, args) => this.loaded = true;
或者给他们提供类型:
this.Loaded += (object sender, EventArgs args) => this.loaded = true;
他们是代表的参数。这是C#2中的等价物:
this.Loaded += delegate (object sender, EventArgs args) { this.loaded = true; };
这有帮助吗?
这是C#1中的等价物(幸运的是,没有捕获的变量,这使得生活更容易......)
this.Loaded += new EventHandler(SetLoadedToTrue);
...
private void SetLoadedToTrue(object sender, EventArgs args)
{
this.loaded = true;
}
(这都假设Loaded
事件的类型为EventHandler;如果不是,则签名会以明显的方式不同。)
答案 1 :(得分:0)
这是事件处理程序的简写。 s
是您通常看到的object sender
,而e
是EventArgs
的某种类型。
基本上它可以这样写:
public void MyHandler(object sender, EventArgs e)
{
this.loaded = true;
}
,调用代码如下:
this.Loaded += MyHandler;