1. ホーム
  2. c#

[解決済み] イベント宣言時に匿名の空のデリゲートを追加することのデメリットはありますか?

2023-06-30 23:30:20

質問

このイディオムについて、いくつか言及されているのを見かけました(たとえば SO 上 ):

// Deliberately empty subscriber
public event EventHandler AskQuestion = delegate {};

利点は明確で、イベントを発生させる前に null をチェックする必要性を回避できます。

しかし、私は欠点があるかどうかを理解したいと思います。 たとえば、それは広く使用されているもので、メンテナンスの頭痛の種にならないほど透明なものですか? 空のイベント サブスクライバー呼び出しの顕著なパフォーマンス ヒットはありますか?

どのように解決するのですか?

唯一の欠点は、余分な空のデリゲートを呼び出しているため、ごくわずかなパフォーマンス上のペナルティがあることです。それ以外には、メンテナンス上のペナルティやその他の欠点はありません。