Прочитать на английском

Поделиться через


Ошибка компилятора CS0150

Требуется постоянное значение.

Переменная найдена там, где ожидается константа. Для получения дополнительной информации см. переключения.

Следующий пример приводит к возникновению ошибки CS0150.

// CS0150.cs  
namespace MyNamespace  
{  
   public class MyClass  
   {  
      public static void Main()  
      {  
         int i = 0;  
         int j = 0;  
  
         switch(i)  
         {  
            case j:   // CS0150, j is a variable int, not a constant int  
            // try the following line instead  
            // case 0:  
         }  
      }  
   }  
}  

Эта ошибка может также возникать, если размер массива указан с помощью значения переменной и инициализирован с помощью инициализатора массива. Чтобы устранить эту ошибку, инициализируйте массив в отдельной инструкции или инструкциях.

// CS0150.cs  
    namespace MyNamespace  
    {  
        public class MyClass  
        {  
            public static void Main()  
            {  
                int size = 2;  
                double[] nums = new double[size] { 46.9, 89.4 }; //CS0150  
                // Try the following lines instead  
                // double[] nums = new double[size];  
                // nums[0] = 46.9;
                // nums[1] = 89.4;  
            }  
        }  
  
    }