CS0218 de erro do compilador
Mensagem de erro
Tipo ('tipo') deve conter declarações de operador true e operador false
Se você definir um operador para um tipo definido pelo usuário e, em seguida, tente usar o operador sistema autônomo um operador de circuito curto, o operador definido pelo usuário deve ter o operador true e operador false definido.Para obter mais informações sobre operadores de circuito curto, consulte &&Operador and || Operador.
O exemplo a seguir gera 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
}
}