다음을 통해 공유


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

업데이트: 2007년 11월

오류 메시지

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

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

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

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

   public static bool operator != (object o, Test t)
   {
      return true;
   }

   public override bool Equals(object o)
   {
      return true;
   }

   // uncomment the GetHashCode function to resolve
   // public override int GetHashCode()
   // {
   //    return 0;
   // }

   public static void Main()
   {
   }
}