【发布时间】:2009-07-02 14:10:28
【问题描述】:
我是否有遗漏 case 语句中的块不被视为块级声明空间的原因?
我在尝试时不断收到错误(变量已被声明)
case x:
var someVariable = 42;
break;
case y:
var someVariable = 40;
break;
但我可以做到
case x:
try{var someVariable = 42;}catch{}
break;
case y:
try{var someVariable = 40;}catch{}
break;
如果 C# 允许通过语句,那将是有意义的,但事实并非如此,而且我想不出您可以在 case 语句中声明一个变量并在该块之外使用它的场景。
【问题讨论】:
-
编辑阐明了您要查找的内容。也就是说,C# case 语句的失败非常有限,但它仅适用于您想要失败的 case 没有自己的语句时。
标签: c# switch-statement language-design