如何添加验证到我的计算器在c#

本文关键字:我的 计算器 验证 何添加 添加 | 更新日期: 2023-09-27 18:16:38

我正在创建一个计算器,我想在其中添加验证代码,这样如果输入除数字以外的任何内容,就会出现错误消息。

private void button4_Click(object sender, EventArgs e)
{
    int R = Convert.ToInt32(textBox1.Text);
    int I = Convert.ToInt32(textBox2.Text);
    int number2;
    if (int.TryParse(textBox1.Text, out number2))
    {
        int E = R - I;
        textBox3.Text = E.ToString(); 
    }
    else 
    { 
        textBox2.Text = ("value entered is not whole number"); 
    }
}

这是我试图使用的代码,但它出现了一个错误信息,当我输入一个非数字的值

如何添加验证到我的计算器在c#

您在TryParse之前调用Convert.ToInt32方法,这会导致异常。不要这样做,用TryParse做验证。

private void button4_Click(object sender, EventArgs e)
{
    int R, I;
    if (int.TryParse(textBox1.Text, out R) &&
        int.TryParse(textBox2.Text, out I))
    {
         int E = R - I;
         textBox3.Text = E.ToString(); 
    }
    else 
    {
       MessageBox.Show("You have entered an invalid value!");
    }
}

您还可以考虑使用更具描述性的变量名称,而不是E, R, I

private void button4_Click(object sender, EventArgs e)
{
    int R, I;
    if (int.TryParse(textBox1.Text, out R)
    && int.TryParse(textBox2.Text, out I))
    {
        int E = R - I;
        textBox3.Text = E.ToString(); 
    }
    else { textBox3.Text = ("value entered is not whole number"); }
}

确保您总是尝试使用TryParse将字符串解析为int,而不是立即转换…如果有字母,则转换失败。

private void button4_Click(object sender, EventArgs e)
{
    int number1;
    int number2;
    if (int.TryParse(textBox1.Text, out number1) && int.TryParse(textBox2.Text, out number2))
    {
      //do your thang (subtraction, assigning the result to TextBox3)
      //return
    }
    else
    {
      MessageBox.Show("Oh no you entered something that's not an int!");
    }
}

我可能还会补充说,让你的一个输入文本框的值"输入的值不是整数"是一种奇怪的UI体验。我会将文本框标记为红色或弹出一个消息框或其他东西,将输入的值留在框中,以防它是一些非常长的数字,如879320!78,他们不小心输入了一个奇怪的符号或什么。