添加输入数据验证以仅接受大于 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");
}
您应该根据您的规范添加数量范围验证 - 请参阅下面显示的代码片段:
//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。
希望这会有所帮助。此致敬意