Erreur du compilateur CS1019

Opérateur unaire surchargeable attendu

Un élément semblable à un opérateur unaire surchargé a été déclaré, mais l’opérateur est manquant ou ne figure pas à l’emplacement approprié dans la signature.

Un opérateur unaire s’applique à un opérande unique. Par exemple, ++ est un opérateur unaire. Vous pouvez surcharger certains opérateurs unaires en utilisant le mot clé operator et en spécifiant un paramètre unique du type auquel l’opérateur s’applique. Par exemple, si vous souhaitez surcharger l’opérateur ++ pour une classe définie par l’utilisateur Temperature de façon à pouvoir écrire Temperature++, vous pouvez l’indiquer de la façon suivante :

public static  Temperature operator ++ (Temperature temp)  
{  
    temp.Degrees++;  
    return temp;  
}  

Quand vous recevez cette erreur, vous avez déclaré un élément semblable à un opérateur unaire surchargé, sauf que l’opérateur lui-même est manquant ou ne figure pas à l’emplacement approprié dans la signature. Si vous supprimez ++ de la signature dans l’exemple précédent, vous générez l’erreur CS1019.

Le code suivant génère l’erreur CS1019 :

// CS1019.cs  
public class ii  
{  
   int i  
   {  
      get  
      {  
         return 0;  
      }  
   }  
}  
  
public class a  
{  
    public int i;  
// Generates CS1019: "ii" is not a unary operator.  
   public static a operator ii(a aa)
  
   // Use the following line instead:  
   //public static a operator ++(a aa)  
   {  
      aa.i++;  
      return aa;
   }  
  
   public static void Main()  
   {  
   }  
}  

Voir aussi