C#WPF中的乘法

时间:2013-11-06 10:25:04

标签: c# wpf multiplication

我正在尝试创建一个生成2个随机数的程序,然后,在用户输入这些数字的乘法后,它会告诉MessageBox中的用户该用户是对还是错。有点像教育模拟器。

我遇到了问题。我在说什么;如果答案与number1和number2相同,则表示; “雷特!”如果不; “Rangt ...”

有什么想法吗?

    private void bt_end_Click(object sender, RoutedEventArgs e)
    {
        int number1 = 0;
        int number2 = 0;
        int answer = 0;
        tbnumber1.Text = number1.ToString();
        tbnumber2.Text = number2.ToString();

        if (svar == (number1 * number2))
        {
            MessageBox.Show("Rétt!");
        }
        else
        {
            MessageBox.Show("Rangt...");
        }
    }
}

}

完整的代码。

    public MainWindow()
    {
        InitializeComponent();
    }

    int tala1 = 0;
    int tala2 = 0;
    int svar = 0;

    private void btstart_Click(object sender, RoutedEventArgs e)
    {
        tbtala1.Text = "";
        tbtala2.Text = "";
        tbsvar.Text = "";

        Random random = new Random();

        tala1 = random.Next(1, 11);
        tala2 = random.Next(1, 11);

        tbtala1.Text = tala1.ToString();
        tbtala2.Text = tala2.ToString();
    }

    private void btend_Click(object sender, RoutedEventArgs e)
    {
        tbtala1.Text = tala1.ToString();
        tbtala2.Text = tala2.ToString();
        tbsvar.Text = svar.ToString();

        if (svar == (tala1 * tala2).ToString())
        {
            MessageBox.Show("Rétt!");
        }
        else
        {
            MessageBox.Show("Rangt... :(");
        }
    }
}

}

解决。感谢所有帮助过的人。

最终版本: 最终版本:

    public MainWindow()
    {
        InitializeComponent();
    }

    int tala1 = 0;
    int tala2 = 0;
    int svar = 0;

    private void btstart_Click(object sender, RoutedEventArgs e)
    {
        tbtala1.Text = "";
        tbtala2.Text = "";
        tbsvar.Text = "";

        Random random = new Random();

        tala1 = random.Next(1, 11);
        tala2 = random.Next(1, 11);

        tbtala1.Text = tala1.ToString();
        tbtala2.Text = tala2.ToString();
    }

    private void btend_Click(object sender, RoutedEventArgs e)
    {
        tala1 = Convert.ToInt32(tbtala1.Text);
        tala2 = Convert.ToInt32(tbtala2.Text);
        svar = Convert.ToInt32(tbsvar.Text);

        if (svar == (tala1 * tala2))
        {
            MessageBox.Show("Rétt!");
        }
        else
        {
            MessageBox.Show("Rangt... :(");
        }

4 个答案:

答案 0 :(得分:1)

要以安全的方式执行此操作,您不仅应该Parse文本输入数字,还应该确保文本确实首先包含数字。如果您的数字应该是整数,那么您可以使用它:

private void bt_end_Click(object sender, RoutedEventArgs e)
{
    int number1 = 0;
    int number2 = 0;
    if (int.TryParse(tbnumber1.Text, out number1) || 
        int.TryParse(tbnumber12.Text, out number2)) MessageBox.Show("Rangt...");

    MessageBox.Show(svar == number1 * number2 ? "Rétt!" : "Rangt...");
}

答案 1 :(得分:0)

1.我发现你没有在任何地方初始化变量'svar'。

用适当的值初始化你的svar变量。

2.更换此内容:

  if (svar == (number1 * number2).ToString())

以下:

   if (svar == (number1 * number2))

答案 2 :(得分:0)

你永远不会定义svar。你可能意味着这样的事情,假设svar设置得更早,并且是随机乘法的正确乘积:

private void bt_end_Click(object sender, RoutedEventArgs e)
{
    int number1 = 0;
    int number2 = 0;

    number1 = int.Parse(tbnumber1.Text);
    number2 = int.Parse(tbnumber2.Text);

    if (svar == (number1 * number2))
    {
        MessageBox.Show("Rétt!");
    }
    else
    {
        MessageBox.Show("Rangt...");
    }
}

答案 3 :(得分:0)

您将数字放在文本框值中。你必须将文本框值转换为数字。

private void btend_Click(object sender, RoutedEventArgs e)
{
    try{
        tala1 = Convert.ToInt32(tbtala1.Text);
        tala2 = Convert.ToInt32(tbtala2.Text);
        svar = Convert.ToInt32(tbsvar.Text);

        if (svar == (tala1 * tala2))
        {
            MessageBox.Show("Rétt!");
        }
        else
        {
            MessageBox.Show("Rangt... :(");
        }
    }catch{
        MessageBox.Show("Invalid input");
    }
}