2009-05-19 11 views
2

私は現在、当社の既存のプロジェクトの一つでFxCopのの使用を調査することだし、奇数の結果を取得しています。FxCopのとIComparableを/ IComparableを<T>

出力は述べルール「同等のタイプのオーバーライドメソッドの違反の数が少ない表示「それはIComparableを実装し等しいので、オーバーライドする必要があります 『ログイン』を。」

これには2つの問題があります。

  1. は、私はクラスがIComparableが、IComparable<T>を実施していないとimplimentん
  2. (MSDN自体がこれを確認した)、IComparableを実装する際にCompareToを実装することのみが必要だと思いましたCompareToは強く型付けされます。

だから、FxCop(1.36)は揺らめきますか、それとも私の理解しているのですか?

ありがとうございます。

+1

ヒント、特に治療を受けているにジェネリックを避けるために、文章内の書式コード部分に 'バッククォートを使いますHTMLタグとして消えてしまいます。 –

+0

ああ、ありがとう – DilbertDave

答えて

2

FxCopは非常に妄想的なツールです...この場合は、あなたが比較の論理をどうにか変えていることを警告しようとしており、必要であれば等価論理を変更することを忘れてはいけません。あなたは、CompareToメソッドは時々0を返します。これはEqualsの使用と一貫していなければなりません。

これは本当にあなたのケースではない場合、オーバーロード(an example in MSDNは、他のすべての等価演算子をオーバーライドする必要があることを示しています)が必要ないと確信しています。無効にします。私に等しいをオーバーライドします

2

  • は自分の方法
  • でbase.Equalsを呼び出し、上記のすべてのことが必要とされている理由を説明するコメントを追加する

FxCopのは幸せされる方法また、あなたのコードを見る次のプログラマーもそうです。 (非常にいくつかのケースでは、あなたが原因proforance問題に上記の操作を行うことはできませんが、これらは、これらの日はまれである。

関連する問題