1. ホーム
  2. c#

C#: += anEvent' と ' += new EventHandler(anEvent)' の違いについて

2023-07-30 17:38:46

質問

以下のコードを見てください。

private void anEvent(object sender, EventArgs e) {
    //some code
}


以下の違いは何ですか?

[object].[event] += anEvent;

//and

[object].[event] += new EventHandler(anEvent);

[アップデートのお知らせ]

どうやら両者に違いはないようです...前者は後者の構文上の糖分に過ぎないのです。

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

違いはありません。最初の例では、コンパイラは自動的にインスタンス化したいデリゲートを推論します。2番目の例では、明示的にデリゲートを定義します。

デリゲート推論はC# 2.0で追加されました。そのため、C# 1.0のプロジェクトでは、2番目の例が唯一の選択肢でした。2.0 のプロジェクトでは、推論を使用する最初の例が、より簡潔であるため、私が使用し、コードベースで見ることを好むものです。