イベント宣言内の空の匿名デリゲート: 潜在的な欠点
イベント プログラミングでは、空の匿名デリゲートをイベント宣言に直接追加するのが一般的です。以下に示すように、null の必要性を排除することでイベントの発生を簡素化します。チェック:
// Deliberately empty subscriber public event EventHandler AskQuestion = delegate {};
この手法は特定の問題を解決しますが、潜在的な欠点を考慮することが重要です:
空のデリゲートに依存する代わりに、代替アプローチとして、null チェックを処理し、イベントの発生を簡素化する拡張メソッドを活用することができます。
public static void Raise(this EventHandler handler, object sender, EventArgs e) { if(handler != null) { handler(sender, e); } }
この拡張機能を使用すると、イベントの発生が簡単になり、null チェックが減りますオーバーヘッド:
// Works, even for null events. MyButtonClick.Raise(this, EventArgs.Empty);
この拡張ベースのソリューションは、イベント宣言内の匿名の空のデリゲートに関連するパフォーマンスとメンテナンスの欠点の両方を排除します。
以上がイベント宣言で空の匿名デリゲートを使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。