在C#中引入可空引用类型(NRT)之前,事件和触发方法的声明如下所示:
我会选择 "EventHandler?",但我在所有找到的C#文档中(至今)都没有看到带有“?”的“EventHandler”。
更新:编辑此问题,因为有人(?)将其标记为此问题的重复-这显然不是一个重复的问题。 我知道“?”的含义。 这不是这里的问题。
public event EventHandler MyEvent;
private void TriggerEvent()
{
this.MyEvent?.Invoke(this, EventArgs.Empty);
}
现在,启用了NRTs,事件类型应该声明为EventHandler
还是EventHandler?
?
public event EventHandler MyEvent;
// or
public event EventHandler? MyEvent;
private void TriggerEvent()
{
this.MyEvent?.Invoke(this, EventArgs.Empty);
}
我会选择 "EventHandler?",但我在所有找到的C#文档中(至今)都没有看到带有“?”的“EventHandler”。
更新:编辑此问题,因为有人(?)将其标记为此问题的重复-这显然不是一个重复的问题。 我知道“?”的含义。 这不是这里的问题。
EventHandler?
。 - MindSwipe