Assigning a default empty delegate to an event on declaration like so
public event EventHandler FooEvent = delegate { };
+ Cannot cause a NullReferenceException by doing FooEvent(sender, args), as always at least one event subscriber
+ No need for null check, which makes code intent clearer
– Uses extra memory to create this empty event handler which is always called but never does anything useful
– Bypasses well known code pattern, which may confuse people later
if (FooEvent != null)
{
FooEvent(this, BarArgs);
}