私は現在、約1年前から開発中のアプリケーションを通じてFxCopを実行するプロセスを進めています。MicrosoftがUseGenericEventHandlersInstances FxCopルールに従わない
私が確信しているルールの1つは、UseGenericEventHandlersInstancesです。私はそれを実装する方法を理解していますが、各カスタムイベントハンドラのデリゲートを定義する手間を省くことを除けば、実際には利益が見られません。私たちのケースでは、すでにこれらの代理人が作成されており、イベントハンドラの変更のメリットがあるかどうか、またはこのルールを無効にするだけでよいのだろうかと思います。
私の限られた経験では、ほとんどすべてのFxCopのルールは、Microsoftと.NETフレームワークに準拠しているようです。しかし、この場合、それは真実ではありません。 .NETフレームワークは、私が調査したマウスやキーバードのイベントハンドラの少なくともすべてについて、宣言した代理人が使用していた従来のアプローチを使用します。
マイクロソフトが何をしているのかわからないのは誰も知りませんが、これによってさらにこのルールの有効性と利点が疑問になります。
デリゲートを定義する必要がない以外に、実際の節約額は何ですか?特定のカスタムEventArgsクラスにイベントをバインドしているため、利便性の向上は見られません。 – WPFNewbie
Microsoftが新しい汎用メソッドを使用しているサンプルイベントがありますか?私は何も見ることができませんでした。 – WPFNewbie
1つ少ないデリゲートを定義することは、著者にとっては少しの利益です。 YetAnotherEventHandlerが何を表しているかを調べる必要はなく、消費者の利益(おそらく大きいもの)です。 EventHandlerのBCLでの使用例はたくさんあります。 mscorlibで最初に公開したのは、System.AppDomain.FirstChanceExceptionです。 –