C # zmienne zakresowanie: „x” nie może być zadeklarowane w tym zakresie, ponieważ nadałoby mu inne znaczenie niż „x”
if(true)
{
string var = "VAR";
}
string var = "New VAR!";
Spowoduje to:
Błąd 1 Zmienna lokalna o nazwie „var” nie może być zadeklarowana w tym zakresie, ponieważ nadałaby inne znaczenie „var”, które jest już używane w zakresie „potomnym”, aby oznaczyć coś innego.
Nic tak naprawdę nie niszczy ziemi, ale czy to nie jest po prostu złe? Inny deweloper i zastanawialiśmy się, czy pierwsza deklaracja powinna być w innym zakresie, więc druga deklaracja nie może zakłócać pierwszej deklaracji.
Dlaczego C # nie jest w stanie rozróżnić dwóch zakresów? Czy pierwszy zakres IF nie powinien być całkowicie oddzielony od reszty metody?
Nie mogę wywołać var z zewnątrz if, więc komunikat o błędzie jest błędny, ponieważ pierwsza zmienna nie ma znaczenia w drugim zakresie.