プロジェクトでVS2012コード分析ツールを実行したところ、このスニペットについて文句を言うことがわかりました。
public delegate void PerMbHandler(long totalMb);
public event PerMbHandler NotifyMegabyteIncrement;
CA1009「MyWebClient.PerMbHandler」の2番目のパラメーターをEventArgs、または「e」という名前のEventArgsを拡張するタイプのインスタンスとして宣言します。
イベントハンドラーメソッドは2つのパラメーターを取ります。1つ目はSystem.Object型で、「sender」という名前です。これは、イベントを発生させたオブジェクトです。2番目のパラメーターのタイプはSystem.EventArgsで、名前は「e」です。これは、イベントに関連付けられているデータです。たとえば、ファイルが開かれるたびにイベントが発生した場合、通常、イベントデータにはファイルの名前が含まれます。
MSDNは、規則が存在する理由ではなく、規則が何であるかを単純に述べています。
EventArgsのサブクラスではなく、長いパラメーターを使用すると何がうまくいかない可能性がありますか?それは慣習とプログラマーの期待の問題ですか、それともパターンに従わなければならない微妙な技術的理由がありますか?コードは正常に機能しているように見えるので、微妙に言います。