Я очистил код и удалил оператор if
, который больше не нужен. Однако я понял, что забыл снять скобки. Это, конечно, действительно и просто создало новую локальную область. Теперь это заставило меня задуматься. За все годы разработки С# я никогда не сталкивался с какой-либо причиной их использования. Фактически, я как бы забыл, что могу это сделать.
Есть ли реальная польза для определения локальной области? Я понимаю, что я могу определить переменные в одной области, а затем определить те же самые снова в несвязанной области (для, foreach и т.д.), Как показано ниже:
void SomeMethod()
{
{
int i = 20;
}
int i = 50; //Invalid due to i already being used above.
}
void SomeMethod2()
{
{
int i = 20;
}
{
int i = 50; //Valid due to scopes being unrelated.
}
{
string i = "ABCDEF";
}
}
Какова истинная точка определения локальной области? Может ли быть какой-то прирост производительности (или, возможно, потеря)? Я знаю, что вы могли бы сделать это на С++ и помогали вам управлять памятью, но поскольку это .NET, действительно ли была бы польза? Является ли это всего лишь би-продуктом языка, который позволяет нам определять случайные области охвата, даже если нет истинной выгоды?