msf*_*boy 2 events lambda c#-3.0
有人请写下这段代码:
this.Loaded + =(s,e)=> this.loaded = true;
到几个代码行,所以我可以追溯的含义?
在我的代码示例中没有s或e?
通过重命名,这可能会使它更加清晰:
this.Loaded += (sender, args) => this.loaded = true;
Run Code Online (Sandbox Code Playgroud)
或者通过给他们类型:
this.Loaded += (object sender, EventArgs args) => this.loaded = true;
Run Code Online (Sandbox Code Playgroud)
它们是代表的参数.这是C#2中的等价物:
this.Loaded += delegate (object sender, EventArgs args) { this.loaded = true; };
Run Code Online (Sandbox Code Playgroud)
这有帮助吗?
这是C#1中的等价物(幸运的是,没有捕获的变量,这使得生活更容易......)
this.Loaded += new EventHandler(SetLoadedToTrue);
...
private void SetLoadedToTrue(object sender, EventArgs args)
{
this.loaded = true;
}
Run Code Online (Sandbox Code Playgroud)
(这都是假设Loaded事件是EventHandler类型;如果不是,签名将以明显的方式不同.)