、私は以下のようにコードを使用します。デリゲートメソッドを呼び出すためにどのコードを選択する必要がありますか?イベントを処理するために
obj.Evt += new EvtEventHandler(DoEvt);
または
obj.Evt += DoEvt;
ても同じ結果を行います。
だから私はどちらを選択すべきか教えてください!なぜ?
、私は以下のようにコードを使用します。デリゲートメソッドを呼び出すためにどのコードを選択する必要がありますか?イベントを処理するために
obj.Evt += new EvtEventHandler(DoEvt);
または
obj.Evt += DoEvt;
ても同じ結果を行います。
だから私はどちらを選択すべきか教えてください!なぜ?
Evt
がEvtEventHandler
と入力されていると仮定すると、違いはありません(C#1.2を使用しない限り、最初のもののみが存在します)。
希望するものを使用してください。
問題ではありません。背後では、両方の方法が同じです(コンパイラは同じコードを生成します)。 ECMA C#仕様の「13.6メソッドグループ変換」(hereを読むことができます)を参照してください。
はい同じ結果になります。ただし、1.0
または1.1
を使用している場合は、EvtEventHandler
を指定する必要があります。それ以降のバージョンの場合は2.0
以上で削除できます。 ILのために
、彼らは
IL_0020: newobj instance void [mscorlib]System.EventHandler::.ctor(object,
native int)
IL_0025: callvirt instance void ConsoleApplication15.A::DoEvt(class [mscorlib]System.EventHandler)
、同じです。しかし、私は最初のものはあなたのコードを維持するために有意義であると思います。