Udostępnij za pośrednictwem


Błąd kompilatora CS1023

Instrukcja Embedded nie może być deklaracją ani instrukcją oznaczoną etykietą

Osadzona instrukcja, taka jak instrukcje po instrukcji if , nie może zawierać deklaracji ani instrukcji oznaczonych etykietami.

Aby rozwiązać ten błąd, zawij osadzoną instrukcję w podwójnymi nawiasami klamrowymi, aby utworzyć blok instrukcji. W języku C#, w przeciwieństwie do języka C/C++, deklaracje zmiennych i instrukcje oznaczone etykietami muszą być zawarte w instrukcji bloku, aby prawidłowo zdefiniować ich zakres.

Poniższy przykład wywołuje dwukrotnie 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  
   }  
}  

Przykład — poprawiony kod

Aby naprawić ten błąd, użyj nawiasów klamrowych, aby utworzyć instrukcję blokową.

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