pix*_*xel 1 c# switch-statement
通常,C#中的switch语句如下所示
switch (sh)
{
case 1:
DoThis();
DoThat();
break;
case 2:
DoThis();
DoThat();
break;
default:
DoThis();
DoThat();
break;
}
Run Code Online (Sandbox Code Playgroud)
但对于第一次,我看到用花括号像下面一个switch语句中的每个case语句的人:
switch (sh)
{
case 1:
{
DoThis();
DoThat();
break;
}
case 2:
{
DoThis();
DoThat();
break;
}
default:
{
DoThis();
DoThat();
break;
}
}
Run Code Online (Sandbox Code Playgroud)
为什么这些花括号{,}用于上面的case语句的每个case和默认块?
他们为什么需要?
有什么不同?
它们不是必需的,但如果在多个分支中声明具有相同名称的变量,它们将非常有用:
switch (sh) {
case 1:
var test = "test";
Console.WriteLine(test);
break;
case 2:
var test = "test";
Console.WriteLine(test);
break;
}
Run Code Online (Sandbox Code Playgroud)
这不会编译,抱怨冲突的变量名称.但是如果你添加大括号
switch (sh) {
case 1: {
var test = "";
Console.WriteLine(test);
break;
}
case 2: {
var test = "";
Console.WriteLine(test);
break;
}
}
Run Code Online (Sandbox Code Playgroud)
这将为每个分支创建自己的范围,它将编译良好.
有些人习惯了这个并且总是添加护腕,即使没有定义任何变量.
| 归档时间: |
|
| 查看次数: |
479 次 |
| 最近记录: |