Lire en anglais

Partager via


Erreur du compilateur CS0216

L’opérateur 'opérateur' exige qu’un opérateur correspondant 'opérateur_manquant' soit aussi défini

Un opérateur == défini par l’utilisateur exige un opérateur != défini par l’utilisateur et vice versa.
Il en va de même pour un opérateur true défini par l’utilisateur et un opérateur false défini par l’utilisateur.

L’exemple suivant génère l’erreur CS0216 :

C#
// CS0216.cs  
class MyClass  
{  
   public static bool operator == (MyClass MyIntLeft, MyClass MyIntRight)   // CS0216  
   {  
      return MyIntLeft == MyIntRight;  
   }  
  
   // to resolve, uncomment the following operator definition  
   /*  
   public static bool operator != (MyClass MyIntLeft, MyClass MyIntRight)  
   {  
      return MyIntLeft != MyIntRight;  
   }  
   */  
  
   public override bool Equals (object obj)  
   {  
      return base.Equals (obj);  
   }  
  
   public override int GetHashCode()  
   {  
      return base.GetHashCode();  
   }  
  
   public static void Main()  
   {  
   }  
}