CS0217 de erro do compilador
Mensagem de erro
Para ser aplicado sistema autônomo um operador de curto circuito um operador lógico definido pelo usuário ('operador') deve ter o mesmo tipo de retorno sistema autônomo o tipo de seus 2 parâmetros.
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 parâmetros e valores de retorno do mesmo tipo.Para obter mais informações sobre operadores de circuito curto, consulte &&Operador and || Operador.
O exemplo a seguir gera CS0217:
// CS0217.cs
using System;
public class MyClass
{
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 int operator & (MyClass f1, MyClass f2) // CS0217
// try the following line instead
// public static MyClass operator & (MyClass f1, MyClass f2)
{
return new MyClass();
}
public static void Main()
{
MyClass f = new MyClass();
int i = f && f;
}
}
Consulte também
Referência
Operadores que pode ser sobrecarregado é (Guia de programação C#)