Tra*_*s J 3 c# switch-statement variable-initialization
在这个switch语句中(我惊讶地编译并执行而没有错误),在case 2中没有声明变量,而case 1从不执行.这有效吗?如何在不声明的情况下使用变量?
switch(2){
case 1:
string something = "whatever";
break;
case 2:
something = "where??";
break;
}
Run Code Online (Sandbox Code Playgroud)
那是因为一个switch语句跨越了案例.因此,当switch最初被处理的语句,它定义了一个名为的变量something,并会对它的默认值......在这种情况下null.
更准确地说,当生成IL时,变量在范围内可用case于其定义或低于其定义.因此,如果在第二个中声明了变量,那么case它在第一个中不可用,case但在第三个中可用case.
| 归档时间: |
|
| 查看次数: |
157 次 |
| 最近记录: |