Error del compilador CS0218
Actualización: noviembre 2007
Mensaje de error
El tipo ('tipo') debe incluir declaraciones de operador true y operador false
The type ('type') must contain declarations of operator true and operator false
Si se define un operador para un tipo definido por el usuario y a continuación se intenta utilizarlo como operador de cortocircuito, el operador definido por el usuario debe tener definidos un operador true y un operador false. Para obtener más información acerca de los operadores de cortocircuito, vea Operador && y Operador ||.
El código siguiente genera el error 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
}
}