添加输入数据验证以仅接受大于 0 的整数值

本文关键字:大于 整数 数据 输入 验证 添加 | 更新日期: 2023-09-27 18:33:20

>我模拟自动售货机,并希望将产品数量文本框设置为仅接受大于 0 的值。 当我输入 -1 时,我的程序接受此值并显示我不想要的值。 有人可以帮忙吗

代码是:

//create a new Employee object
    try // Exception handling to ensure that incorrect data type cannot be entered into text box creating a new product
       {
            Products newProd = new Products(this.textProdID.Text);
            newProd.ProductName= this.textProdName.Text;
            newProd.ProductQuantity= Convert.ToInt32(this.textProdQuantity.Text);
            newProd.ProductPrice= Convert.ToDouble(this.textProdPrice.Text);
            ProductList.Add(newProd);
            MessageBox.Show(newProd.ProdName + " has been added to the product list");
        }
     catch
     {
        MessageBox.Show("Format entered into text box Is incorrect please check and try again");
     }

添加输入数据验证以仅接受大于 0 的整数值

您应该根据您的规范添加数量范围验证 - 请参阅下面显示的代码片段:

//create a new Employee object
    try // Exception handling to ensure that incorrect data type cannot be entered into text box creating a new product
       {
            Products newProd = new Products(this.textProdID.Text);
            newProd.ProductName= this.textProdName.Text;
            newProd.ProductQuantity= Convert.ToInt32(this.textProdQuantity.Text);
            // add the input range validation 
            if (newProd.ProductQuantity<=0) throw new ArgumentException ("Quantity must be a positive number.");
            newProd.ProductPrice= Convert.ToDouble(this.textProdPrice.Text);
            ProductList.Add(newProd);
            MessageBox.Show(newProd.ProdName + " has been added to the product list");
        }
     catch
     {
        MessageBox.Show("Format entered into text box Is incorrect please check and try again");
     }

另一种解决方案是在验证失败并返回时显示带有错误消息的消息框。通过使用TryParse()而不是Convert方法可以实现进一步的性能优化,但考虑到相对简单的任务,与这种情况相关的两种解决方案就足够了。作为一般建议,请考虑将输入验证添加到 Control 事件(例如 TextBox.TextChanged +=(s,e)=>{ // validation};此外,根据您的情况,请考虑在验证失败中将对象设置为 null。

希望这会有所帮助。此致敬意