2009-05-19 4 views
2

저는 현재 기존 프로젝트 중 하나에서 FxCop 사용을 조사 중이며 이상한 결과를 얻고 있습니다.FxCop 및 IComparable/IComparable

'출력은 IComparable을 구현하므로'Log '가 Equals를 재정의해야한다는'유사한 유형의 규칙보다 우선 적용 방법 '규칙 위반이 적습니다. "

두 가지 문제는이와 있습니다

    나는 IComparable을 구현할 때 CompareTo를 구현하는 것만이 필요하다고 생각
  1. (MSDN 자체가이 문제를 확인) 클래스는 IComparable하지만 IComparable<T>을 구현하지 않고 impliment 않습니다
  2. CompareTo는 강력하게 형식화됩니다.

그래서 FxCop (1.36)은 흔들 거리는 소리를 내고 있습니다.

미리 감사드립니다.

+1

팁 제네릭을 사용하지 않으려면 백틱을 사용하여 문장의 코드 조각을 서식 지정하십시오 HTML 태그처럼 사라져 버립니다. –

+0

아, 전화 해 주셔서 감사합니다. – DilbertDave

답변

2

FxCop은 상당히 편집 성이 강한 도구입니다 ...이 경우, 나는 당신에게 비교 논리를 어떻게 든 변화시키고 있으며 필요하다면 평등 논리를 변경하는 것을 잊어서는 안된다는 경고를하려고합니다. 알다시피, CompareTo 메소드는 때때로 0을 반환하는데, 이는 Equals를 사용하는 것과 일치해야합니다.

이것이 사실이 아니라면 다음과 같은 과부하가 필요하지 않을 것입니다 (an example in MSDN은 다른 모든 동등한 연산자도 무시해야 함을 보여줍니다) ... 경고 또는 그것을 해제하십시오. 내가 같음을 무시할 것

2

,

  • 은 당신의 방법
  • 에 base.Equals를 호출하고 위의 모든 것을이 필요한 이유를 설명하는 주석을 추가

의 FxCop은 행복 그 방법 , 그리고 다음 프로그래머가 코드를 살펴볼 것이다. (매우 드문 경우지만, proforance 문제로 인해 위의 작업을 할 수는 없지만, 요즘은 드물다.

관련 문제