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.

questionAnswers(3)

yourAnswerToTheQuestion