Lire en anglais

Partager via


Erreur du compilateur CS0218

Le type ('type') doit contenir les déclarations de l’opérateur true et de l’opérateur false

Si un type défini par l’utilisateur surcharge l’&opérateur ou | opérateur, il doit également définir les opérateurs vrais et faux, afin de rendre l’&& opérateur ou || opérateur défini.

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

// CS0218.cs  
using System;  
public class MyClass  
{  
   // uncomment these operator declarations to resolve this CS0218  
   /*  
   public static bool operator true (MyClass f)  
   {  
      return false;  
   }  
  
   public static bool operator false (MyClass f)  
   {  
      return false;  
   }  
   */  
  
   public static implicit operator int(MyClass x)  
   {  
      return 0;  
   }  
  
   public static MyClass operator & (MyClass f1, MyClass f2)  
   {  
      return new MyClass();  
   }  
  
   public static void Main()  
   {  
      MyClass f = new MyClass();  
      int i = f && f;   // CS0218, requires operators true and false  
   }  
}  

Voir aussi