CS0151 de erro do compilador
Um valor de tipo integral é esperado
Uma variável foi usada em uma situação onde um tipo de dados integral era necessário.Para obter mais informações, consulte Tipos (guia de programação do C#).
Exemplo
Esse erro pode ocorrer quando não há nenhuma conversão ou se as conversões implícitas disponíveis resultam em uma situação ambígua.O exemplo a seguir gera 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;
}
}
}
Visual Studio de 2008 e posterior, um void invocação de método gera CS0151.Você pode corrigir o erro, chamando um método que retorna um tipo integral, como int ou longo.
class C
{
static void Main()
{
switch (M()) // CS0151
{
default:
break;
}
}
static void M()
{
}
}