Partager via


Erreur du compilateur CS0218

Mise à jour : novembre 2007

Message d'erreur

Le type ('type') doit contenir les déclarations de l'opérateur true et de l'opérateur false
The type ('type') must contain declarations of operator true and operator false

Si vous définissez un opérateur pour un type défini par l'utilisateur, puis essayez d'utiliser l'opérateur comme opérateur de court-circuit, l'opérateur défini par l'utilisateur doit avoir un opérateur true et un opérateur false définis. Pour plus d'informations sur les opérateurs de court-circuit, consultez l'opérateur && et l'opérateur ||.

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

Référence

Opérateurs de conversion (Guide de programmation C#)