为什么';tc#允许在不同的case块中为switch语句声明相同编号的变量吗?
可能重复:为什么';tc#允许在不同的case块中为switch语句声明相同编号的变量吗?,c#,.net,switch-statement,C#,.net,Switch Statement,可能重复: 例如: string danger; switch ( this.Type ) { case Warfare.Nuclear: case Warfare.Biological: case Warfare.Chemical: danger = "deadly"; break; case Warfare.Air: string threat = "major" ...
例如:
string danger;
switch ( this.Type )
{
case Warfare.Nuclear:
case Warfare.Biological:
case Warfare.Chemical:
danger = "deadly";
break;
case Warfare.Air:
string threat = "major"
...
break;
case Warfare.Ground:
string threat = "medium"
...
break;
}
为什么我不能在每个变量中定义具有相同名称的局部变量,而不必使用不同的名称或在switch语句外部声明变量,而switch语句将不会在其外部使用。case语句不定义变量范围。您可以在case语句中的大括号中添加一些内容来定义新的变量范围。将case块括在{}中以缩小同名变量的范围。请参见:@Kevin-谢谢。埃里克·利珀特总是知道。我想你不会对编译器团队期望太低的