Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


Błąd kompilatora CS0136

Nie można zadeklarować zmiennej lokalnej o nazwie "var" w tym zakresie, ponieważ dałoby to inne znaczenie zmiennej "var", która jest już używana w zakresie "nadrzędny lub bieżący/podrzędny", aby oznaczyć coś innego

Deklaracja zmiennej ukrywa inną deklarację, która w przeciwnym razie byłaby w zakresie. Zmień nazwę zmiennej zadeklarowanej w wierszu, który wygenerował CS0136.

Przykład

Poniższy przykład generuje CS0136:

// CS0136.cs  
namespace MyNamespace  
{  
   public class MyClass  
   {  
      public static void Main()  
      {  
         int i = 0;  
         {  
            char i = 'a';   // CS0136, hides int i  
         }  
         i++;  
      }  
   }  
}  

Z poziomu specyfikacji języka C#:

Jest to błąd przestrzeni deklaracji zmiennej lokalnej i zagnieżdżonej przestrzeni deklaracji zmiennej lokalnej zawierającej elementy o tej samej nazwie. W związku z tym w przestrzeni deklaracji zagnieżdżonej nie można zadeklarować zmiennej lokalnej ani stałej o takiej samej nazwie jak zmienna lokalna lub stała w otaczającej przestrzeni deklaracji. Istnieje możliwość, aby dwie spacje deklaracji zawierały elementy o tej samej nazwie, o ile żadna spacja deklaracji nie zawiera drugiej.