C#:イベントを起動するときの異なる構文形式

c# events
C#:イベントを起動するときの異なる構文形式

私はC#でイベントを発生させる異なる構文バージョンを見つけましたが、違いは何であるかを本当に理解することはできません:

if (OnMyEvent!= null)
    OnMyEvent(this, new MyEventEventArgs());

and:

OnMyEvent.Invoke(this, new MyEventEventArgs());

特にスレッドコンテキストの変更がない場合

前もって感謝します!

  2  1


ベストアンサー

Reflectorまたはildasmを使用すると、これらが完全に同じもの( `Invoke()`の呼び出し)にコンパイル( `null`チェックを調整)することがわかります。

望ましいこととしては、常に null`をチェックする必要があり、 Invoke() `構文よりも呼び出し構文がよく見られます。

4


Invokeメソッドは、リフレクションによってイベントをトリガーしようとするときに役立ちます。

1


タイトルとURLをコピーしました