Я видел несколько упоминаний этой идиомы (в том числе на SO ):
// Deliberately empty subscriber
public event EventHandler AskQuestion = delegate {};
Достоинства очевидны - это избавляет от необходимости проверять значение null перед запуском события.
Однако я очень хочу понять, есть ли у этого недостатки. Например, широко ли он используется и достаточно прозрачен, чтобы не вызывать головную боль при обслуживании? Есть ли заметное снижение производительности при вызове пустого события подписчика?