Как правильно объявлять (обнуляемые) события в с # 8 (.net 6)?

Я искал (Google и переполнение стека), и ни одно из предоставленных решений не работает должным образом. Как правильно объявляются события? Объявив такое событие:

      public event EventHandler? Insert;
protected virtual void OnInsert(EventArgs e) { Insert?.Invoke(this, e); }

Я избавляюсь от всех ошибок и получаю предупреждение (разыменование возможно нулевой ссылки) для этой строки:

      Insert(this, e);

Исключение возникает при запуске этого события, если нет подписчиков. Что изменилось, поскольку это правильно работало в более ранних версиях языка C #? И как решить проблему (сделать это правильно). Проверка наличия подписчиков (как это предлагается в приведенном ниже коде) не помогла:

      if (Insert != null)
    Insert(this, e);

0 ответов

Другие вопросы по тегам