Compilerfehler CS0151
Ein Wert des ganzzahligen Typs wird erwartet
In einer Situation, in der ein ganzzahliger Datentyp erforderlich war, wurde eine Variable verwendet.Weitere Informationen hierzu finden Sie unter Typen (C#-Programmierhandbuch).
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;
}
}
}
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()
{
}
}