Я столкнулся с этим сегодня и потратил на это немного времени, и в конце концов понял это. Надеюсь, это поможет вам и другим сэкономить время.
Если на вашем мероприятии нет подписчиков, и вы просто объявили события как:
public event EventHandler SomeEventHappened;
Тогда ожидается нулевая ссылка . Обойти это можно следующим образом:
public event EventHandler SomeEventHappened = delegate { };
Это гарантирует, что это не пустая ссылка, когда вы звоните как
SomeEventHappened()
Другой шаблон, который я видел, это , а не , инициализация для делегирования {} и проверка нуля:
var eventToRaise = SomeEventHappened;
if( eventToRaise != null )
{
SomeEventHappened()
}