this.Loaded + =(s,e)=> this.loaded = true;?

msf*_*boy 2 events lambda c#-3.0

有人请写下这段代码:

this.Loaded + =(s,e)=> this.loaded = true;

到几个代码行,所以我可以追溯的含义?

在我的代码示例中没有se

Jon*_*eet 7

通过重命名,这可能会使它更加清晰:

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类型;如果不是,签名将以明显的方式不同.)