我在C#中声明了一个变量,不能在switch语句中使用它

Jon*_*igh 2 c# variables scope local switch-statement

考虑一下这个C#代码:

string gr = comboBox1.ValueMember;
decimal sum;
try
{
    decimal rite = Convert.ToDecimal(textBox1.Text);
    decimal left = Convert.ToDecimal(textBox2.Text);
}
catch (Exception)
{
    string swr = "Please enter REAL a number, can be with decimals";
    label2.Text = swr;
}

switch (gr)
{
    case "X":
        sum = 12M;
        break;
    case "/":
        break;
    case "*":
        break;
    case "-":
        break;
    default:
        break;
}

answerText.Text = Convert.ToString(sum);
Run Code Online (Sandbox Code Playgroud)

如果我sum在switch语句中给小数一个值,它会弹出一个错误语句说:

使用未分配的局部变量'sum'

我是C#的新手,所以这可能听起来很愚蠢.看起来我ALREADY在switch语句中设置了sum的值.我尝试sum = 12M;在所有其他案例陈述中使用相同的内容,但这似乎没有帮助.

顺便说一下,我也在修改switch语句之外的其他变量时遇到问题 - EX.仪式,左;

Ern*_*rno 7

如果gr不等于"X" sum则没有值.编译器会警告你.