次のパターンは、(C# で) イベント ハンドラーを使用する場合に非常に一般的です。
public event Action handler;
…
// some method:
if(handler != null) handler();
このイベントに空のデリゲートを割り当てることの欠点はありますか? if !=null
これにより、イベントが発生するすべての場所で条件が保存されます。もちろん、これは、イベントに常に適切なデリゲートが割り当てられていることを保証できない場合にのみ適用されます。
public event Action handler;
…
// in constructor:
handler += ()=>{};
…
// some method:
handler();
確かに、わずかなパフォーマンス ヒットがありますが、コードがよりクリーンになります。そのような場合のベストプラクティスは何ですか?技術的な欠点はありますか?