Roy*_*mir 12 .net c# clr .net-4.0 switch-statement
可能重复:
c#switch语句中的变量声明
我一直在想:
我写的时候:
switch (temp)
{
case "1":
int tmpInt = 1;
break;
}
Run Code Online (Sandbox Code Playgroud)
该case "1":区域有一个代码区域被执行(直到休息)
现在,
从上面的瀑布无法进入case of 2例如:
switch (temp)
{
case "1":
int tmpInt = 1;
case "2":
break;
}
Run Code Online (Sandbox Code Playgroud)
//错误:缺少中断返回.
所以我假设,他们有不同的执行区域(案例......休息).
为什么会出现这种错误呢?

//冲突变量tmpInt定义如下.
ps这只是一个愚蠢的问题,仍然很有趣.
Joe*_*oey 32
在C#中,范围仅由大括号决定.如果没有,则没有单独的范围.有switch/ case显然没有.您所谓的"执行区域"与您可以引用变量的位置完全无关.对于一个人为的例子:
int x = 1;
goto foo;
// This part gets never executed but you can legally refer to x here.
foo:
Run Code Online (Sandbox Code Playgroud)
但是,如果您愿意,可以执行以下操作:
switch (temp)
{
case "1":
{
int tmpint = 1;
break;
}
case "2":
{
int tmpint = 1;
break;
}
}
Run Code Online (Sandbox Code Playgroud)
事实上,对于switch我所做的一些陈述,因为它通过不污染其他cases 使生活变得更容易.我有时想念Pascal ;-)
关于您的尝试尝试,您必须在C#中使用goto case "2".
| 归档时间: |
|
| 查看次数: |
6117 次 |
| 最近记录: |