컴파일러 오류 CS0151

업데이트: 2007년 11월

오류 메시지

정수 계열 형식 값이 필요합니다.
A value of an integral type expected

정수 계열 데이터 형식이 필요한 상황에 변수를 사용했습니다. 자세한 내용은 형식(C# 프로그래밍 가이드)을 참조하십시오.

예제

이 오류는 변환이 없는 경우 또는 사용할 수 있는 암시적 변환으로 모호한 상황이 발생한 경우 생성될 수 있습니다. 다음 샘플에서는 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 2008 이상에서는 void 메서드를 호출하면 CS0151이 발생합니다. int 또는 long과 같은 정수 계열 형식을 반환하는 메서드를 호출하여 이 오류를 수정할 수 있습니다.

class C
{
    static void Main()
    {

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

    static void M()
    {
    }
}