我的意思是除了在函数,类,if,while,switch,try-catch需要时使用它.
在我看到这个问题之前,我不知道可以这样做.
在上面的链接中,Eli提到"他们使用它来折叠代码的逻辑部分,这些逻辑部分不属于通常折叠起来的函数,类,循环等."
除了提到的那些之外还有什么其他用途?
使用花括号来限制变量的范围并仅在需要时扩展范围(在"需要访问"的基础上工作)是一个好主意吗?或者它真的很傻?
如何使用范围,以便您可以在不同的范围内使用相同的变量名称,但在相同的更大范围内?或者,重用相同的变量(如果你想使用相同的变量名)是更好的做法,并节省解除分配和分配(我想一些编译器可以对此进行优化?)?或者更好地使用不同的变量名称?
就在最近我发现你可以在C#中做到这一点:
{
// google
string url = "#";
if ( value > 5 )
url = "http://google.com";
menu.Add( new MenuItem(url) );
}
{
// cheese
string url = "#"; // url has to be redefined again,
// so it can't accidently leak into the new menu item
if ( value > 45 )
url = "http://cheese.com";
menu.Add( new MenuItem(url) );
}
Run Code Online (Sandbox Code Playgroud)
而不是ie:
string url = "#";
// google
if ( value > 5 )
url = "http://google.com";
menu.Add( new MenuItem(url) …Run Code Online (Sandbox Code Playgroud) 可能重复:
您何时使用代码块?
好吧,这可能是一个愚蠢的问题,我可能会遗漏一些明显的东西但是当我慢慢学习C#时,这已经让我唠叨了一段时间了.
以下代码显然编译得很好:
public void Foo()
{
{
int i = 1;
i++;
}
{
int i = 1;
i--;
}
}
Run Code Online (Sandbox Code Playgroud)
我知道{}块可以用于范围界定.问题是你为什么要这样做?这个功能解决了哪些问题?
我在使用它们时没有任何害处,除非它确实增加了一个更令人困惑的代码,因为与那些"绑定"流控制,迭代等相比,这些范围可能更容易被忽略.