名称' c'在当前环境中不存在

时间:2015-10-31 16:07:59

标签: c# if-statement

我一直在编写这段代码来为我做二次方程式,但是问题就出现了问题:

        if (textBox2.Text != "")
        {
        string h = textBox2.Text;
        double c = double.Parse(h);
        }
        else if (textBox2.Text == "")
        {
        double c = 0;
        }
        // else error message

        //Delta
        double delta = (Math.Pow(b, 2)) - (4 * a * c);
        string dtxt = Convert.ToString(delta);

        label5.Text = dtxt;

问题是,"名称' c'在当前环境中不存在"。这也发生在值b和a中,它们具有与c相同的条件。

4 个答案:

答案 0 :(得分:0)

您在if块中声明 块中的那些变量,因此它们不再存在于其中。

您可以使用以下初始化:

double c = (textBox2.Text == "") ? 0 : double.Parse(textBox2.Text);

这样,c声明在它使用的相同范围内。

答案 1 :(得分:0)

c在其自己的块中定义:

    {
    double c = 0;
    }

因此c只能在该块中访问 。在它之外它是不可见的。

答案 2 :(得分:0)

您应该将c的声明移到if之外:

double c;
if (textBox2.Text != "")
{
    string h = textBox2.Text;
    c = double.Parse(h);
}
else
{
    c = 0;
}

此外,您可以用1行替换此块:

double c = textBox2.Text.Length != 0 ? Double.Parse(textBox2.Text) : 0;

答案 3 :(得分:0)

这是一个范围问题,因为错误提示,您需要在if语句之前声明double:

double c;

if (textBox2.Text != "")
{
string h = textBox2.Text;
c = double.Parse(h);
}
else if (textBox2.Text == "")
{
c = 0;
}
// else error message

//Delta
double delta = (Math.Pow(b, 2)) - (4 * a * c);
string dtxt = Convert.ToString(delta);

label5.Text = dtxt;