Почему C # не позволяет мне использовать одно и то же имя переменной в разных областях?

Как, например:

if ( this.IsValid )
{
    Matrix matrix = new Matrix();
}

Matrix matrix = new Matrix();

Компилятор предупреждает меня, говоря:

« Локальная переменная с именем ' матрица 'не может быть объявлена ​​в этой области видимости, потому что она придала бы другое значение « матрице », которая уже используется в «дочерней» области для обозначения чего-то еще.

Разве эти переменные не находятся в разных областях видимости, поэтому я все равно не смогу получить доступ к первой матрице извне оператора if?

15
задан Joan Venge 10 January 2011 в 18:11
поделиться