Compiler Error CS0151

Ein Wert des ganzzahligen Typs wird erwartet

In einer Situation, in der ein ganzzahliger Datentyp erforderlich war, wurde eine Variable verwendet. Weitere Informationen finden Sie unter Typen.

Beispiel

Dieser Fehler kann auftreten, wenn keine Konvertierung ausgeführt wird oder die verfügbaren impliziten Konvertierungsergebnisse eine mehrdeutige Situation generieren. Im folgenden Beispiel wird CS0151 generiert.

// CS0151.cs  
public class MyClass  
{  
   public static implicit operator int (MyClass aa)  
   {  
      return 0;  
   }  

   public static implicit operator long (MyClass aa)  
   {  
      return 0;  
   }  

   public static void Main()  
   {  
      MyClass a = new MyClass();  

      // Compiler cannot choose between int and long  
      switch (a)   // CS0151  
      // try the following line instead  
      // switch ((int)a)  
      {  
         case 1:  
            break;  
      }  
   }  
}  

Beispiel

In Visual Studio 2008 und höher generiert ein void-Methodenaufruf den Fehler CS0151. Sie können den Fehler beheben, indem Sie eine Methode aufrufen, die einen ganzzahligen Typen wie int oder long zurückgibt.

class C  
{  
    static void Main()  
    {  

        switch (M()) // CS0151  
        {  
            default:  
                break;  
        }  
    }  

    static void M()  
    {  
    }  
}