我正在阅读与EventHandlers相关的.NET文档,但不理解来自 https://learn.microsoft.com/en-us/dotnet/standard/events/ 的以下代码片段:
本地变量handler的目的是什么?为什么不直接调用TresholdReached,如下所示:TresholdReached?.Invoke(this, e);? 类似的例子可以在这里找到:https://learn.microsoft.com/en-us/dotnet/api/system.eventhandler-1?view=net-5.0。
class Counter
{
public event EventHandler ThresholdReached;
protected virtual void OnThresholdReached(EventArgs e)
{
EventHandler handler = ThresholdReached;
handler?.Invoke(this, e);
}
// provide remaining implementation for the class
}
本地变量handler的目的是什么?为什么不直接调用TresholdReached,如下所示:TresholdReached?.Invoke(this, e);? 类似的例子可以在这里找到:https://learn.microsoft.com/en-us/dotnet/api/system.eventhandler-1?view=net-5.0。
handler
的目的是什么?它只是一个简短的示例,展示了event
对象是强类型的。我认为编译器无论如何都会清除本地变量。 - Arthur Attout