可能重复:
您何时使用代码块?
好吧,这可能是一个愚蠢的问题,我可能会遗漏一些明显的东西但是当我慢慢学习C#时,这已经让我唠叨了一段时间了.
以下代码显然编译得很好:
public void Foo()
{
{
int i = 1;
i++;
}
{
int i = 1;
i--;
}
}
Run Code Online (Sandbox Code Playgroud)
我知道{}块可以用于范围界定.问题是你为什么要这样做?这个功能解决了哪些问题?
我在使用它们时没有任何害处,除非它确实增加了一个更令人困惑的代码,因为与那些"绑定"流控制,迭代等相比,这些范围可能更容易被忽略.
它switch在您的变量声明可能变得混乱的语句中很有用:
令人困惑的代码:
switch (true)
{
case true:
var msg = "This is true.";
var copy = msg;
break;
case false:
msg = "This is false.";
copy = msg;
break;
}
Run Code Online (Sandbox Code Playgroud)
清除代码:
switch (true)
{
case true:
{
var msg = "This is true.";
var copy = msg;
break;
}
case false:
{
var msg = "This is false.";
var copy = msg;
break;
}
}
Run Code Online (Sandbox Code Playgroud)