ホームページ > バックエンド開発 > C++ > C# イベント処理: ` = anEvent` と ` = new EventHandler(anEvent)` の違いは何ですか?

C# イベント処理: ` = anEvent` と ` = new EventHandler(anEvent)` の違いは何ですか?

Barbara Streisand
リリース: 2025-01-08 07:26:39
オリジナル
299 人が閲覧しました

C# Event Handling: What's the Difference Between ` = anEvent` and ` = new EventHandler(anEvent)`?

C# の = anEvent = new EventHandler(anEvent) の違い

C# のラムダ式は、イベント ハンドラーを追加するための構文を簡略化し、次の 2 つの一般的な方法につながります。

1. = anEvent

    例:
  • button1.Click = anEvent;
  • ここで、
  • はイベント発生時に実行されるメソッドを参照するデリゲートです。コンパイラは、メソッド シグネチャに基づいて正しいデリゲート型を自動的に推測します。 anEvent

2. = new EventHandler(anEvent)

    例:
  • button1.Click = new EventHandler(anEvent);
  • この構文では、イベント ハンドラーを割り当てる前にデリゲートの種類 (
  • ) を明示的に指定します。 EventHandler

2 つの方法の違い

基本的な違いは、委任された推論メカニズムにあります。

    最初の方法では、コンパイラはデリゲート型を推論し、簡潔な構文シュガーを提供します。
  • 2 番目の方法では、デリゲート型が明示的に定義されています。これは、デリゲート推論が C# 2.0 より前に導入されていなかったため、C# 1.0 プロジェクトで必要です。

要約: これらは同等です

どちらの方法でも同じ機能を実現できます。どの方法を選択するかは個人の好みによって決まります。 C# 2.0 以降のプロジェクトの場合は、

を使用してコードをよりクリーンにし、 = anEvent を使用してデリゲート型を明示的に定義します。 = new EventHandler(anEvent)

以上がC# イベント処理: ` = anEvent` と ` = new EventHandler(anEvent)` の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート