Errore del compilatore CS0217
Per essere utilizzato come operatore di corto circuito, un operatore logico definito dall'utente ('operator') deve avere lo stesso tipo restituito dei 2 parametri.
Se si definisce un operatore per un tipo definito dall'utente e quindi si prova a usare l'operatore come operatore di corto circuito, l'operatore definito dall'utente deve avere parametri e valori restituiti dello stesso tipo. Per ulteriori informazioni sugli operatori di corto circuito, vedere &&
operatore e ||
operatore. Per ulteriori informazioni sugli operatori di cortocircuito o condizionali definiti dall'utente, vedere la sezione Operatori logici condizionali definiti dall'utente della specifica del linguaggio C#.
L'esempio seguente genera l'errore 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;
}
}
Feedback su .NET
.NET è un progetto di open source. Selezionare un collegamento per fornire feedback: