0

我正在使用 VS 2012、Windows 窗体项目、C#

我有一系列产品products[],我从项目中的 XML 文件中获取这些产品。用户将使用数字键盘输入产品 ID(4 位数字,只读文本框),然后我在其中搜索products[]以找到与 ID 匹配的价格并将用户返回他们的“更改”。如何防止用户输入无效的产品 ID,或者在他们输入 ID 并单击“购买”后告诉他们“错误,此 ID 不存在”。这是我的购买按钮代码,在用户投入他们的“钱”并为产品选择了 4 位数之后。

CoinChange是为银行提供给我们的 DLL 中的一个类,它有一个调用的方法,该方法TotalChange接受两个参数来返回更改,decimal productprice并且decimal amountDeposited

private void btnPurchase_Click(object sender, EventArgs e)
{
    TextReader reader = null;
    decimal productprice;
    decimal amountDeposited = Convert.ToDecimal(txtDepositAmount.Text);
    int productChoice = Convert.ToInt16(txtChoice.Text);
    XmlSerializer serializer = new XmlSerializer(typeof(Product[]));
    reader = new StreamReader("../../XML/Drinks.xml");
    Product[] products = (Product[])serializer.Deserialize(reader);
    for (int x = 0; x < products.Length; x++)
    {
        if (products[x].productID == productChoice)
        {
            productprice = products[x].price;
            CoinChange CC = Service.TotalChange(productprice, amountDeposited);
            MessageBox.Show("Refund amount:" + "\r\n" + "Nickel: " + CC.Nickel.ToString() + "\r\n" + "Dime: " +
              CC.Dime.ToString() + "\r\n" + "Quarter: " + CC.Quarter.ToString());

            break;
        }
    }
}

如果格式不正确,请不要对我大喊大叫,我是该网站的新手,我会修复它,只是让我知道需要修复什么。谢谢!

4

1 回答 1

1
    for (int x = 0; x < products.Length; x++)
    {
        if (products[x].productID == productChoice)
        {
            productprice = products[x].price;
            CoinChange CC = Service.TotalChange(productprice, amountDeposited);
            MessageBox.Show("Refund amount:" + "\r\n" + "Nickel: " + CC.Nickel.ToString() + "\r\n" + "Dime: " +
                            CC.Dime.ToString() + "\r\n" + "Quarter: " + CC.Quarter.ToString());
            return;  // Found and handled the product
        }
    }
    // If we get here none of the products matched
    MessageBox.Show("Invalid product ID.  Please check your catalog and try again.");
于 2013-03-22T23:26:02.647 回答