Compilerfehler CS0151

Der Wert des erwarteten integralen Typs

Eine Variable wurde dort benutzt, wo ein integraler Datentyp erforderlich war. Weitere Informationen finden Sie unter Typen.

Beispiel

Dieser Fehler kann auftreten, wenn keine Konvertierung vorgenommen wurde, oder wenn die verfügbaren impliziten Konvertierungen zu einer mehrdeutigen Situation führen. 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 integralen Typ wie int oder long zurückgibt.

class C  
{  
    static void Main()  
    {  

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

    static void M()  
    {  
    }  
}