Compilerfehler CS1019

Überladbarer unärer Operator erwartet

Etwas, das wie ein überladener unärer Operator aussieht, wurde deklariert, aber der Operator ist nicht vorhanden oder befindet sich im falschen Speicherort in der Signatur.

Ein unärer Operator ist ein Operator, der auf einen einzelnen Operanden angewendet wird. ++ ist z.B. ein unärer Operator. Sie können einige unäre Operatoren mit dem operator-Schlüsselwort überladen und einen einzelnen Parameter des Typs angeben, auf den der Operator angewendet wird. Wenn Sie beispielsweise den Operator ++ für eine benutzerdefinierte Klasse Temperature überladen möchten, damit Sie Temperature++ schreiben können, können Sie ihn auf diese Weise definieren:

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

Wenn Sie diesen Fehler erhalten, haben Sie etwas, das wie ein überladener unärer Operator aussieht, deklariert, außer dass der Operator nicht vorhanden ist oder sich im falschen Speicherort in der Signatur befindet. Wenn Sie ++ aus der Signatur im vorherigen Beispiel entfernen, werden Sie CS1019 generieren.

Durch den folgenden Code wird der Fehler CS1019 ausgelöst:

// 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()  
   {  
   }  
}  

Weitere Informationen