我正在整理一些代码,并删除了一个不再必要的 if
语句。但是,我意识到我忘记删除括号。当然,这是有效的,并且只创建了一个新的局部作用域。现在这让我想起来。在我多年的 C# 开发中,我从未遇到过使用它们的原因。实际上,我有点忘记我可以这么做。
定义一个局部作用域是否有任何实际好处?我明白我可以在一个作用域中定义变量,然后在另一个无关的作用域(如 for、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";
}
}
定义本地范围的真正目的是什么?是否实际上会有任何性能提升(或潜在的损失)?我知道你可以在C++中做到这一点并帮助你管理内存,但因为这是.NET,是否真的会有好处?这只是语言的副产品,让我们定义随机范围,即使没有真正的好处吗?