C# イベント処理の「=」構文の詳細説明
イベント駆動型プログラミングでは、イベントをサブスクライブするために " =" 構文がよく使用されます。ただし、その使用法は、特に次の 2 つの表記法の間で混乱を引き起こす可能性があります:
<code class="language-csharp">[object].[event] += anEvent; [object].[event] += new EventHandler(anEvent);</code>
「=anEvent」表記の本質
最初の表現は、委任された推論の力を利用します。この構文を使用すると、コンパイラーは、提供されたイベント ハンドラー anEvent
に基づいてデリゲートの型を自動的に決定します。上の例では、イベントのタイプは EventHandler
であると想定されています。
明示的な「new EventHandler(anEvent)」表記
2 番目の表記はより明示的で、イベントをサブスクライブする前に、タイプ EventHandler
の新しいデリゲート オブジェクトを作成します。 EventHandler
コンストラクターに渡される引数は、イベント ハンドラー anEvent
です。このアプローチにより、デリゲートの種類をより詳細に制御できるようになり、特定のシナリオで役立つ可能性があります。
重要なお知らせ
これら 2 つの表記法の間に実質的な違いはないことに言及する価値があります。前者は後者に対する糖衣構文であり、イベントをサブスクライブするプロセスを簡素化するために C# 2.0 で導入されました。 C# 1.0 プロジェクトでは、明示的な表記のみが使用可能です。
提案
どちらの表記法も有効ですが、一般的には単純さのため「= anEvent」表記法が好まれます。これは最新の C# コード ベースで一般的に使用されており、コードをシンプルで読みやすく保つという原則に準拠しています。
以上がC# イベント処理における ` = anEvent` と ` = new EventHandler(anEvent)` の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。