Avertissement du compilateur (niveau 3) CS0661
Mise à jour : novembre 2007
Message d'erreur
'classe' définit l'opérateur == ou l'opérateur !=, mais ne se substitue pas à Object.GetHashCode()
'class' defines operator == or operator != but does not override Object.GetHashCode()
Le compilateur a détecté l'opérateur d'égalité ou d'inégalité défini par l'utilisateur, mais pas de substitution pour la fonction GetHashCode. Un opérateur d'égalité ou d'inégalité défini par l'utilisateur implique que vous souhaitez également substituer la fonction GetHashCode.
L'exemple suivant génère l'avertissement 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()
{
}
}