通常,C#中的switch语句如下所示
switch (sh)
{
case 1:
DoThis();
DoThat();
break;
case 2:
DoThis();
DoThat();
break;
default:
DoThis();
DoThat();
break;
}
但是,有史以来第一次,我看到有人在下面的switch语句中为每个case语句使用花括号:
switch (sh)
{
case 1:
{
DoThis();
DoThat();
break;
}
case 2:
{
DoThis();
DoThat();
break;
}
default:
{
DoThis();
DoThat();
break;
}
}
为什么这些大括号{
,}
被用来对上面的情况语句的每个case和default块?
为什么需要它们?
有什么不同?
它们不是必需的,但是如果您在多个分支中声明具有相同名称的变量,它们将很有用:
switch (sh) {
case 1:
var test = "test";
Console.WriteLine(test);
break;
case 2:
var test = "test";
Console.WriteLine(test);
break;
}
它不会编译,抱怨变量名冲突。但是,如果您添加大括号
switch (sh) {
case 1: {
var test = "";
Console.WriteLine(test);
break;
}
case 2: {
var test = "";
Console.WriteLine(test);
break;
}
}
它将为每个分支创建自己的范围,并且可以正常编译。
有些人习惯了这一点,即使没有定义任何变量,也总是添加括号。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句