gpt4 book ai didi

c# - 在 C# 中调用事件处理程序

转载 作者:太空狗 更新时间:2023-10-29 23:09:23 29 4
gpt4 key购买 nike

我一直在尝试学习如何在 C# 中使用事件处理程序,但我无法弄清楚以下代码中的处理程序 (this, e) 做了什么:

public event EventHandler ThresholdReached;

protected virtual void OnThresholdReached(EventArgs e)
{
EventHandler handler = ThresholdReached;
if (handler != null)
{
handler(this, e);
}
}

它是否试图用事件 (e) 调用事件处理程序方法 (this)?

最佳答案

它调用在 ThresholdReached 事件上注册的所有已注册事件监听器。

handler != null 检查确保至少有一个监听器注册到该事件。

在 C# 6.0 及更高版本中,您可以使用 Null Propagation :

handler?.Invoke(this, e);

handler(this, e) 将调用每个已注册的事件监听器。事件监听器在 += 运算符的帮助下订阅,并在 -= 运算符的帮助下取消订阅该事件。

this 是为了让事件监听器知道是谁引发了 ThresholdReached 事件。谁是事件的发送者。

e 是事件参数,它也被传递到监听器方法中,它可以包含有关 ThresholdReached 事件的更多有用信息,例如达到了哪个阈值。

关于c# - 在 C# 中调用事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12217632/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com