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

标签 events c#-3.0 lambda

有人可以写这段代码吗:

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

分成几行代码以便我可以追溯其含义?

在我的代码示例中没有 se 吗?

最佳答案

这可能会使它更清晰一些,只需重命名:

this.Loaded += (sender, args) => this.loaded = true;

或者通过给他们类型:

this.Loaded += (object sender, EventArgs args) => this.loaded = true;

它们是委托(delegate)的参数。这是 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 类型;如果不是,则签名明显不同。)

关于events - this.Loaded += (s, e) => this.loaded = true;?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2382672/

相关文章:

c# - 我可以内联指定我的显式类型比较器吗?

C# 自定义事件根据参数分配给不同的委托(delegate)

android 添加日历事件在 android 4.0 中崩溃

c# - 帮助合并 XML 数据

c# - 如何从带有 where 子句的列表中获取数据到另一个列表?

python - 将函数应用于 pandas 数据帧的每一列而不使用 for 循环?

lambda - 使用词法闭包的 Racket

javascript - 是否有一个事件可以检测 Javascript 中是否设置了某个属性?

java - 与 selenium api 通信的 jquery 事件处理程序

c# - “Could not find type” 在设计器中加载窗体时出错