最佳答案
为什么在 C # switch 语句中,对于多种情况下使用的变量,只在第一种情况下声明它?
例如,下面抛出错误“在这个作用域中已经定义了一个名为‘ variable’的局部变量”。
switch (Type)
{
case Type.A:
string variable = "x";
break;
case Type.B:
string variable = "y";
break;
}
但是,根据逻辑,如果类型为 Type.B
,则不应该执行初始声明。Switch 语句中的所有变量是否存在于单个作用域中,它们是否在处理任何逻辑之前被创建/分配?