为什么C#不允许在switch语句的不同case块中声明具有相同编号的变量?

Joa*_*nge 2 .net c# switch-statement

可能重复:
C#中的Case语句块级别声明空间

例如:

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;
}
Run Code Online (Sandbox Code Playgroud)

为什么我不能只在每个变量中定义具有相同名称的局部变量,而不必使用不同的名称或在switch语句之外声明变量,这些变量不会在其外部使用.

Bob*_*Bob 7

案例陈述没有定义变量范围.您可以在case语句中添加花括号中的内容来定义新的变量范围.