private void answer_Click(object sender, EventArgs e)
{
int textbox1;
int textbox2;
int answer;
textbox1 = int.Parse(textBox1.Text);
textbox2 = int.Parse(textBox2.Text);
if (comboBox1.SelectedText.ToString() == "+")
{
answer = (textbox1 + textbox2);
}
else if (comboBox1.SelectedText.ToString() == "-")
{
answer = (textbox1 - textbox2);
}
else if (comboBox1.SelectedText.ToString() == "*")
{
answer = (textbox1 * textbox2);
}
else if (comboBox1.SelectedText.ToString() == "/")
{
answer = (textbox1 / textbox2);
}
// the error is here that says Use of unassigned local variable 'answer'
MessageBox.Show(answer.ToString());
}
textbox1上的用户输入12和textbox2上的2,因此他们选择“ - ”作为他们的操作,然后消息框应该只显示10。
答案 0 :(得分:2)
在定义变量时,只需将变量赋值:
int answer = 0;
如果您的任何条件不匹配,则answer
仍将被取消分配。编译器会看到并警告您。
而您的另一个错误是,您正在将textBox1.Text
和textBox2.Text
解析为整数,但您未在计算中使用这些变量。将textboxone
更改为textbox1
并且textboxtwo
至textbox2
答案 1 :(得分:1)
我同意您必须初始化变量答案,但还有另一种解决办法!
你必须使用comboBox1.SelectedItem.ToString()而不是comboBox1.SelectedText.ToString()
;)再见
答案 2 :(得分:1)
快速重新格式化:
private void answer_Click(object sender, EventArgs e)
{
int
textbox1 = int.Parse(textBox1.Text),
textbox2 = int.Parse(textBox2.Text),
answer = 0;
if (comboBox1.Text == "+")
answer = (textbox1 + textbox2);
else if (comboBox1.Text == "-")
answer = (textbox1 - textbox2);
else if (comboBox1.Text == "*")
answer = (textbox1 * textbox2);
else if (comboBox1.Text == "/")
answer = (textbox1 / textbox2);
MessageBox.Show(answer.ToString());
}
希望你能看到原来的错误。
观察结果: