Compartir a través de


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()
    {
    }
}