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
}
}