一尘不染

C#switch语句中的变量声明

c#

这个问题已经在这里有了答案

C#中的案例声明块级别声明空间 (5个答案)

8个月前关闭。

为什么在C#switch语句中,对于在多种情况下使用的变量,仅在第一种情况下才声明它?

例如,以下内容引发错误“此范围中已经定义了一个名为’variable’的局部变量”。

switch (Type)
{
    case Type.A:
            string variable = "x";
                break;
    case Type.B:
            string variable = "y";
                break;
}

但是,根据逻辑,如果类型为,则不应单击初始声明Type.B。switch语句中的所有变量是否都在单个作用域中,并且是否在处理任何逻辑之前创建/分配了它们?


阅读 503

收藏
2020-05-19

共1个答案

一尘不染

我相信这与变量的整体范围有关,它是在开关级别定义的块级别范围。

就个人而言,如果您在示例中将值设置为开关内的某项确实有任何好处,则无论如何都需要在开关外声明它。

2020-05-19