Freigeben über


Compilerfehler CS0217

Aktualisiert: November 2007

Fehlermeldung

Um als Kurzschlussoperator anwendbar zu sein, muss der Rückgabetyp eines benutzerdefinierten logischen Operators ("Operator") mit dem Typ seiner 2 Parameter übereinstimmen.
In order to be applicable as a short circuit operator a user-defined logical operator ('operator') must have the same return type as the type of its 2 parameters.

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 ||.

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

Referenz

Überladbare Operatoren (C#-Programmierhandbuch)