Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Nie można zadeklarować zmiennej lokalnej o nazwie "var" w danym zakresie, ponieważ dałoby to inne znaczenie zmiennej "var", która jest już używana w zakresie nadrzędnym lub bieżącym lub podrzędnym do oznaczenia czego 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++;
}
}
}
Kompilator zgłasza ten błąd niezależnie od kolejności tekstowej deklaracji zmiennych, jak pokazano w poniższym przykładzie:
// CS0136.cs
namespace MyNamespace
{
public class MyClass
{
public static void Main()
{
if (true)
{
int i = 1; // CS0136, hides i outside this block
}
int i = 0;
i++;
}
}
}
Błędem jest, gdy przestrzeń deklaracji zmiennych lokalnych oraz zagnieżdżona przestrzeń deklaracji zawierają 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.