c# - 如果number1和/或number2为空,则显示文本的命令行

时间:2017-08-28 11:33:50

标签: c# calculator isnullorempty

我正在尝试为学校任务编写一个简单的计算器,但我遇到的问题是,如果我离开textBox1&计算器总是会崩溃。 textBox2为空。相反,如果其中一个或两个都留空,我希望文本出现在label2中:

sourceCpp()

1 个答案:

答案 0 :(得分:0)

如果其中任何一行是空的,应用程序会在这两行中的一行中抛出异常:

Zahl1 = Convert.ToDouble(textBox1.Text); 
Zahl2 = Convert.ToDouble(textBox2.Text); 

在将其值转换为decimal之前,您应该检查TextBoxes是否为空。所以,试试这样:

private void button1_Click(object sender, EventArgs e)
{
    if (String.IsNullOrEmpty(textBox1.Text) || String.IsNullOrEmpty(textBox2.Text))
    {
        label2.Text = "Bitte 2 Zahlen eingeben";
    }
    else
    {
        Zahl1 = Convert.ToDouble(textBox1.Text); 
        Zahl2 = Convert.ToDouble(textBox2.Text); 
        label2.Text = label2.Text.Replace(".", ",");

    }
}

另外,您应该检查该文本是否可以转换为double。如果用户在textBox1中写入abc并在textBox2中写入3,该怎么办?你会得到一个例外。

所以,添加额外的检查,如下所示:

double z1;
double z2;
if (String.IsNullOrEmpty(textBox1.Text) || String.IsNullOrEmpty(textBox2.Text))
{
    label2.Text = "Bitte 2 Zahlen eingeben";
}
else if (!double.TryParse(textBox1.Text, out z1) || !double.TryParse(textBox2.Text, out z2))
{
    label2.Text = "Das sind keine korekt Zahlen! :)";
}
else
{
    //rest of your code
    Zahl1 = Convert.ToDouble(textBox1.Text); 
    //etc....
}