我一直在编写这段代码来为我做二次方程式,但是问题就出现了问题:
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相同的条件。
答案 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;