Kompilatorfel CS1023

Inbäddad instruktion får inte vara en deklaration eller en etikettsats

En inbäddad instruktion, till exempel -uttrycken efter en if-instruktion , kan varken innehålla deklarationer eller etiketterade instruktioner.

Lös det här felet genom att omsluta den inbäddade instruktionen i klammerparenteser för att skapa en block-instruktion. I C#, till skillnad från C/C++, måste variabeldeklarationer och etiketterade instruktioner finnas i en blockinstruktion för att definiera omfånget korrekt.

Följande exempel genererar CS1023 två gånger:

// 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  
   }  
}  

Exempel – korrigerad kod

Åtgärda det här felet genom att använda klammerparenteser för att skapa en blocksats:

// 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  
      }
   }  
}