Предупреждение компилятора (уровень 3) CS0661
Обновлен: Ноябрь 2007
Сообщение об ошибке
В классе "класс" определен оператор == или оператор !=, но не переопределен метод 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()
{
}
}