Partager via


Erreur du compilateur CS0035

Mise à jour : novembre 2007

Message d'erreur

L'opérateur 'opérateur' est ambigu pour un opérande de type 'type'
Operator 'operator' is ambiguous on an operand of type 'type'

Le compilateur dispose de plusieurs conversions et ne sait pas laquelle choisir avant d'appliquer l'opérateur. Pour plus d'informations, consultez Templated User Defined Conversions et Opérateurs de conversion (Guide de programmation C#).

L'exemple suivant génère l'erreur CS0035 :

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