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


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

Встроенный оператор не может быть объявлением или оператором с меткой

Внедренная инструкция, например инструкции, следующие после оператора if, не может содержать ни объявления, ни помеченные инструкции.

Чтобы устранить эту ошибку, заключите встроенную инструкцию в фигурные скобки, чтобы создать блок инструкций. В C#, в отличие от C/C++, объявления переменных и помеченные операторы должны содержаться в инструкции блока, чтобы правильно определить их область.

Пример ниже дважды приводит к появлению ошибки CS1023:

// CS1023.cs  
public class a  
{  
   public static void Main()  
   {  
      if (1)  
         int i;      // CS1023, declaration is not valid here  

      if (1)  
         xx : i++;   // CS1023, labeled statement is not valid here  
   }  
}  

Пример: исправленный код

Чтобы устранить эту ошибку, используйте фигурные скобки для создания блочного выражения.

// CS1023 - Fixed.cs  
public class a  
{  
   public static void Main()  
   {  
      if (1)  
      {
         int i;      // Fixed: declaration is now in a block statement  
      }

      int j = 0;
      if (1)  
      {
         xx : j++;   // Fixed: labeled statement is now in a block statement  
      }
   }  
}