Как правильно объявлять (обнуляемые) события в с # 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);