Compilerfehler CS0151Compiler Error CS0151

Der Wert des erwarteten integralen TypsA value of an integral type expected

Eine Variable wurde dort benutzt, wo ein integraler Datentyp erforderlich war.A variable was used in a situation where an integral data type was required. Weitere Informationen finden Sie unter Typen.For more information, see Types.

BeispielExample

Dieser Fehler kann auftreten, wenn keine Konvertierung vorgenommen wurde, oder wenn die verfügbaren impliziten Konvertierungen zu einer mehrdeutigen Situation führen.This error can occur when there is no conversion or if the available implicit conversions result in an ambiguous situation. Im folgenden Beispiel wird CS0151 generiert:The following sample generates CS0151.

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

BeispielExample

In Visual Studio 2008 und höher generiert ein void-Methodenaufruf den Fehler CS0151.In Visual Studio 2008 and later, a void method invocation generates CS0151. Sie können den Fehler beheben, indem Sie eine Methode aufrufen, die einen integralen Typ wie int oder long zurückgibt.You can fix the error by calling a method that returns an integral type such as int or long.

class C  
{  
    static void Main()  
    {  

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

    static void M()  
    {  
    }  
}