请有人写这段代码:
this.Loaded += (s,e) => this.loaded = true;
变成了几行代码,这样我就可以回溯意义了?
在我的代码示例中,没有的或e?
发布于 2010-03-04 21:04:40
这可能会使它更加清晰,只需重命名:
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类型的;如果不是,签名就会以明显的方式不同。)
发布于 2010-03-04 21:03:56
它是事件处理程序的缩写。s是您通常看到的object sender,e是某种类型的EventArgs。基本上可以写成这样:
public void MyHandler(object sender, EventArgs e)
{
this.loaded = true;
}呼叫代码应该是这样的:
this.Loaded += MyHandler;https://stackoverflow.com/questions/2382672
复制相似问题