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

Jon*_*igh 0 .net c# scope switch-statement

string gr = comboBox1.ValueMember;
decimal sum = 0M;
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 = rite * left;
        break;
    case "/":

        break;
    case "*":
        break;
    case "-":
        break;
    default:

        break;

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

我在修改switch语句之外的其他变量时遇到问题 - EX.仪式,左;
每当我尝试编译代码时,它都会显示错误消息"当前上下文中不存在名称'左'." 与整数仪式相同.

hat*_*ica 5

rite和left只能在声明它们的范围内访问,即在try块内.

你需要做这样的事情

    decimal rite = 0m;
    decimal left = 0m;
    try
    {
        rite = Convert.ToDecimal(textBox1.Text);
        left = Convert.ToDecimal(textBox2.Text);
    }
    catch (Exception)
    {
        string swr = "Please enter REAL a number, can be with decimals";
        label2.Text = swr;
    }
Run Code Online (Sandbox Code Playgroud)

虽然这还不够,但是因为你必须在rite中决定你想要什么值,如果抛出异常则离开.