Ошибка компилятора CS0150
Обновлен: Ноябрь 2007
Сообщение об ошибке
Ожидается значение константы
A constant value is expected
Обнаружена переменная в том месте, где ожидается константа. Дополнительные сведения см. в разделе switch (Справочник по C#).
Следующий пример проводит к генерированию ошибки 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 1:
}
}
}
}
Эта ошибка формируется также, если размер массива указан с помощью значения переменной и инициализируется инициализатором массива. Для устранения ошибки инициализируйте массив в отдельных операторах.
// 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;
}
}
}