Ostrzeżenie kompilatora (poziom 3) CS0660
'class' definiuje operator == lub operator != ale nie zastępuje Object.Equals(object o)
Kompilator wykrył operator równości lub nierówności zdefiniowany przez użytkownika, ale nie zastępuje Object.Equals metody . Operator równości lub nierówności zdefiniowany przez użytkownika oznacza, że chcesz również zastąpić metodę Equals . Aby uzyskać więcej informacji, zobacz How to define value equality for a type (Jak zdefiniować równość wartości dla typu).
Poniższy przykład generuje 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()
{
}
}
Współpracuj z nami w serwisie GitHub
Źródło tej zawartości można znaleźć w witrynie GitHub, gdzie można również tworzyć i przeglądać problemy i żądania ściągnięcia. Więcej informacji znajdziesz w naszym przewodniku dla współtwórców.