컴파일러 경고(수준 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()
{
}
}