我是新來的C#,所以請善待。我正在爲我的編程課程進行任務,並且不能在我的生活中找出問題所在。該程序是一個計算器,它接受來自兩個文本框的輸入並對其進行操作,並禁用第二個文本框並使用按鈕輸入數字(數字鍵盤)。我正在使用Visual Studio 2013,並多次遍歷我的代碼並逐步完成。這裏是我的代碼:解析文本時發生System.FormatException
static int checkFocusedTextbox = 1;
string operationPerformed;
double result = 0;
private void Operator_Click(object sender, RoutedEventArgs e)
{
// try
// {
Button button = (Button)sender;
operationPerformed = button.Content.ToString();
double num1 = double.Parse(inputOne.Text);
double num2 = double.Parse(inputTwo.Text);
if (checkFocusedTextbox == 1)
{
if ((inputOne.Text == "") || (inputTwo.Text == ""))
{
error.Text = "Please fill both text fields";
}
else if ((inputOne.Text != "") || (inputTwo.Text != ""))
{
switch ((string)button.Tag)
{
case "+":
inputOne.Clear();
inputTwo.Focus();
result = num1 + num2;
break;
case "-":
inputOne.Clear();
num2 = double.Parse(inputOne.Text);
result = num1 + num2;
break;
case "*":
inputOne.Clear();
num2 = double.Parse(inputOne.Text);
result = num1 + num2;
break;
case "/":
inputOne.Clear();
num2 = double.Parse(inputOne.Text);
result = num1/num2;
break;
case "%":
inputOne.Clear();
num2 = double.Parse(inputOne.Text);
result = num1 % num2;
break;
default:
break;
}
output.Text = result.ToString();
}
}
else
{
Calculation(num1, num2);
output.Text = result.ToString();
}
}
public void Calculation(double number1, double number2)
{
switch (operationPerformed)
{
case "+":
result = number1 + number2;
break;
case "-":
result = number1 - number2;
break;
case "*":
result = number1 * number2;
break;
case "/":
result = number1/number2;
break;
case "%":
result = number1 % number2;
break;
default:
break;
}
}
public void CalculationNumberpad()
{
}
private void NumberPad_Click(object sender, RoutedEventArgs e)
{
Button button = (Button)sender;
inputOne.Text += button.Content.ToString();
}
private void inputTwo_GotFocus(object sender, RoutedEventArgs e)
{
checkFocusedTextbox = 2;
}
private void inputOne_GotFocus(object sender, RoutedEventArgs e)
{
checkFocusedTextbox = 1;
}
}
}
Button類成功地檢索按鈕點擊頭到operationPerformed變量。這已經在我的代碼的頂部作爲字符串聲明,所以我不明白爲什麼我使用ToString()後出現錯誤。然後進入num1 double並給出錯誤。
我迫切需要幫助,我知道這個社區是最好的!如果我遺漏了任何信息,請原諒我。
謝謝, 克里斯