Freigeben über


Compilerfehler CS0035

Aktualisiert: November 2007

Fehlermeldung

Der Operator "Operator" ist bei einem Operanden vom Typ "Typ" mehrdeutig.
Operator 'operator' is ambiguous on an operand of type 'type'

Der Compiler hat mehrere verfügbare Konvertierungen und kann vor Anwendung des Operators keine Konvertierung auswählen. Weitere Informationen finden Sie unter Templated User Defined Conversions und unter Konvertierungsoperatoren (C#-Programmierhandbuch).

Im folgenden Beispiel wird CS0035 generiert:

// CS0035.cs
class MyClass
{
   private int i;

   public MyClass(int i)
   {
      this.i = i;
   }

   public static implicit operator double(MyClass x)
   {
      return (double) x.i;
   }

   public static implicit operator decimal(MyClass x)
   {
      return (decimal) x.i;
   }
}

class MyClass2
{
   static void Main()
   {
      MyClass x = new MyClass(7);
      object o = - x;   // CS0035
      // try a cast:
      // object o = - (double)x;
   }
}