컴파일러 경고(수준 3) CS0660

업데이트: 2007년 11월

오류 메시지

'class'은(는) == 연산자 또는 != 연산자를 정의하지만 Object.Equals(object o)를 재정의하지 않습니다.
'class' defines operator == or operator != but does not override Object.Equals(object o)

컴파일러에서 사용자 정의 같음 연산자(=) 또는 같지 않음 연산자(<>)는 발견했지만 Equals 함수 재정의는 발견하지 못했습니다. 사용자 정의 같음 연산자(=) 또는 같지 않음 연산자(<>)가 있다는 것은 Equals 함수도 재정의한다는 것을 나타냅니다.

다음 샘플에서는 CS0660 오류가 발생하는 경우를 보여 줍니다.

// CS0660.cs
// compile with: /W:3 /warnaserror
class Test   // CS0660
{
   public static bool operator == (object o, Test t)
   {
      return true;
   }

   // uncomment the Equals function to resolve
   // public override bool Equals(object o)
   // {
   //    return true;
   // }

   public override int GetHashCode()
   {
      return 0;
   }

   public static void Main()
   {
   }
}