CS0151 de erro do compilador

Mensagem de erro

Um valor de tipo integral é esperado

Uma variável foi usada em uma situação onde um tipo de dados era necessário.Para obter mais informações, consulte Tipos (Guia de programação C#).

Exemplo

Este erro pode ocorrer quando não há nenhuma conversão ou se as conversões implícitas disponível 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;
      }
   }
}

No Visual Studio 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, sistema autônomo int or longo.

class C
{
    static void Main()
    {

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

    static void M()
    {
    }
}