ハンドラーがアタッチされていない C# でイベントを発生させることはできません。そのため、各呼び出しの前に、イベントが null かどうかを確認する必要があります。
if ( MyEvent != null ) {
MyEvent( param1, param2 );
}
コードをできるだけクリーンに保ち、これらの null チェックを取り除きたいと考えています。少なくとも私の場合は、パフォーマンスに大きな影響を与えるとは思いません。
MyEvent( param1, param2 );
現在、空のインラインハンドラーを各イベントに手動で追加することでこれを解決しています。私はそれを行うことを覚えておく必要があるため、これはエラーが発生しやすいです。
void Initialize() {
MyEvent += new MyEvent( (p1,p2) => { } );
}
リフレクションといくつかの CLR マジックを使用して、特定のクラスのすべてのイベントに対して空のハンドラーを自動的に生成する方法はありますか?