Error del compilador CS0151
Actualización: noviembre 2007
Mensaje de error
Se espera un valor de tipo integral
A value of an integral type expected
Se utilizó una variable en una situación donde se requería un tipo de datos integral. Para obtener más información, vea Tipos (Guía de programación de C#).
Ejemplo
Este error puede suceder donde no hay conversión, o si las conversiones implícitas disponibles dan como resultado una situación ambigua. El código siguiente genera el error 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;
}
}
}
En Visual Studio 2008 y versiones posteriores, una invocación de método void genera CS0151. Puede corregir el error mediante una llamada a un método que devuelve un tipo integral como int o long.
class C
{
static void Main()
{
switch (M()) // CS0151
{
default:
break;
}
}
static void M()
{
}
}