Partager via


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()
   {
   }
}