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

时间:2014-08-04 20:02:48

标签: c# validation calculator

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

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"); 
    }
}

这是我尝试使用的代码,但在输入非数字值时会出现错误消息。

3 个答案:

答案 0 :(得分:2)

您在Convert.ToInt32之前调用TryParse方法,这会导致异常。不要这样做,请使用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!");
    }
}

您也可以考虑使用更具描述性的变量名称,而不是ERI ......

答案 1 :(得分:1)

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"); }
}

答案 2 :(得分:1)

确保您尝试将字符串解析为始终使用TryParse的整数,而不是立即转换...如果有字母,则转换失败。

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,他们不小心输入了一个奇怪的符号或其他东西。