gpt4 book ai didi

C# switch 语句中每个 case/default block 都带有大括号的 switch 语句?

转载 作者:太空宇宙 更新时间:2023-11-03 18:55:05 24 4
gpt4 key购买 nike

通常,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 语句的每个 case 和默认 block ?

为什么需要它们?

有什么区别?

最佳答案

它们不是必需的,但如果您在多个分支中声明具有相同名称的变量,它们很有用:

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;
}
}

这将为每个分支创建自己的作用域,并且可以正常编译。

有些人习惯了这一点并总是添加括号,即使没有定义任何变量也是如此。

关于C# switch 语句中每个 case/default block 都带有大括号的 switch 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47419619/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com