有什么办法可以简化吗?

时间:2018-08-29 22:00:34

标签: c# visual-c#-express-2010

我有两个要乘的标签(工资和小时)。当用户未输入数字时,我希望显示一个错误框,但我只能弄清楚最简单的方法是制作两个if语句,然后这样做。任何帮助都会很棒。

    private void btnCalc_Click(object sender, EventArgs e)
    {
        double hours = Double.Parse(tbxHours.Text);
        double pay = Double.Parse(tbxPay.Text);

        if (Double.TryParse(tbxPay.Text,  out pay))
            {
            double result = hours * pay;
            MessageBox.Show($" total amount is {result} ", "Click Event",
            MessageBoxButtons.OKCancel, MessageBoxIcon.Information);

        }
        else
        {
            MessageBox.Show($"You must enter a number", "Input Error",
        MessageBoxButtons.OK, MessageBoxIcon.Error);

            tbxPay.Clear();

        }


        if (Double.TryParse(tbxHours.Text, out hours))
        {
            double result = hours * pay;
        }
        else
        {
            MessageBox.Show($"You must enter a number", "Input Error",
        MessageBoxButtons.OK, MessageBoxIcon.Error);

            tbxHours.Clear();

        }
    }

1 个答案:

答案 0 :(得分:2)

每个控件只需要解析一次。这是一种简化形式,您可以重复使用包含数字作为文本的多个控件。

<script src="https://unpkg.com/vue@2.5.17"></script>

<div id="app">
  <div class="container" @click.stop="onClick">
    <img class="img"
         src="//placekitten.com/100/100"
         width="100"
         alt="kitty"
         :style="{top: imgTop, left: imgLeft}">
  </div>
</div>

需要考虑的一些其他事情。

  • 您应该专注于数字解析失败的控件吗?
  • 如果这些文本框中没有有效的数字,您的private void btnCalc_Click(object sender, EventArgs e) { if (TryParseFromTextBox(tbxHours, out double hours) && TryParseFromTextBox(tbxPay, out double pay)) { double result = hours * pay; MessageBox.Show($" total amount is {result} ", "Click Event", MessageBoxButtons.OKCancel, MessageBoxIcon.Information); } } public bool TryParseFromTextBox(TextBox control, out double value) { if (!double.TryParse(control.Text, out value)) { MessageBox.Show($"You must enter a number in {control.Name}", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error); control.Clear(); return false; } return true; } 是否甚至可以单击?