Share via


Compilerfehler CS0217

Um als Kurzschlussoperator anwendbar zu sein, muss der Rückgabetyp eines benutzerdefinierten logischen Operators ('Operator') mit dem Typ seiner zwei Parameter übereinstimmen.

Wenn Sie einen Operator für einen benutzerdefinierten Typ definieren und anschließend versuchen, den Operator als Kurzschlussoperator zu verwenden, muss der benutzerdefinierte Operator über Parameter und Rückgabewerte desselben Typs verfügen. Weitere Informationen zu Kurzschlussoperatoren finden Sie unter &&-Operator und ||-Operator. Weitere Informationen zu benutzerdefinierten Kurzschlussoperatoren oder bedingten Operatoren finden Sie im Abschnitt Benutzerdefinierte bedingte logische Operatoren der C#-Sprachspezifikation.

Im folgenden Beispiel wird CS0217 generiert:

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

Siehe auch