Этот код выглядит как неполное редактирование;код допустим, но странен.
Чтобы проконтролировать ваше утверждение:
Единственной практической целью установки блока было бы создание внутри переменных и ограничение их области действия.к блоку
То есть практическая цель для создания блока, но не цель only .Например:
class C
{
public int x;
void M()
{
x = 123;
if (whatever)
{
int x = q;
}
}
}
Этот код недопустим, поскольку простое имя x используется непоследовательно во всем блоке, который его первым использует. x
сначала означает this.x
, илокальная переменная позже.Это не разрешено в C #;в C # имя может означать только одну вещь во всем блоке, который первым использует имя.
Вы могли бы "исправить" проблему с помощью ...
class C
{
public int x;
void M()
{
{
x = 123;
}
if (whatever)
{
int x = q;
}
}
}
Поскольку теперь два блока, которые используют одно и то же имя для обозначения двух разных вещей, никоим образом не перекрываются.Но это тупой способ решить проблему;лучше всего переименовать локальный .