【发布时间】:2018-04-12 05:34:34
【问题描述】:
我无法在 Visual Studio 上的 win 表单中找出这些错误。
程序运行,尽管它没有正确计算附加组件。即使检查了所有 3 个附加组件,它也不会计算超过 75 美分。 数组名称也不会改变,即使它没有显示任何与数组相关的错误,但它可能与显示为错误的事件处理程序有很大关系。
{
private object groupSalad;
private object groupPizza;
private object groupHamburger;
private int addon3;
private int addon2;
private int addon1;
public Form1()
{
//created event handlers for change in radiobox
InitializeComponent();
hamburger.CheckedChanged += new System.EventHandler(groupHamburger.Checked);
salad.CheckedChanged += new System.EventHandler(groupSalad.Checked);
pizza.CheckedChanged += new System.EventHandler(groupPizza.Checked);
// ERROR ON groupSalad/Pizza/Hambuger.CHECKED' and
// group Pizza. object does not contain a definition for 'checked'
// and no extension method for 'checked' accepting a first argiument
}
private void btnPlaceOrder_Click(object sender, EventArgs e)
{
//declared variables to hold
decimal tax = .09m;
decimal food = 0;
decimal addOn;
//food options. 3 radio buttons
decimal burger = 9.95m;
decimal salad = 7.95m;
decimal pizza = 8.95m;
//variables to hold currency ammounts
decimal subtotal = 0;
decimal taxAmmount = 0;
decimal total = 0;
//depending on radio button options, addons will change text with array
string[] addOnPizza = new string[2];
//array type 1. not prefered
addOnPizza[0] = "Suasage";
addOnPizza[1] = "Olives";
//salad add-ons
string[] addOnSalad = new string[3];
addOnSalad[0] = "Bacon Bits";
addOnSalad[1] = "Bread Sticks";
addOnSalad[2] = "Croutons";
//array type. prefered
string[] addOnBurger = { "Cheese", "Ketchup", "Fries" };
//RadioButtons
if (this.hamburger.Checked)
{
food = burger;
addOn = .75m;
chkAddOn1.Text = addOnBurger[0];
chkAddOn2.Text = addOnBurger[1];
chkAddOn3.Text = addOnSalad[2];
}
else if (this.salad.Checked)
{
food = salad;
addOn = 45m;
chkAddOn1.Text = addOnSalad[0];
chkAddOn2.Text = addOnSalad[1];
chkAddOn3.Text = addOnSalad[2];
}
else if (this.pizza.Checked)
{
addOn = .65m;
food = pizza;
chkAddOn1.Text = addOnPizza[0];
chkAddOn2.Text = addOnPizza[1];
chkAddOn3.Text = null;
}
decimal addOnTotal;
if (chkAddOn1.Checked)
{
addOnTotal =+ addon1;
if (chkAddOn2.Checked)
addOnTotal =+ addon2;
if (chkAddOn3.Checked)
addOnTotal =+ addon3;
}
//Use of unassigned variable for addOnTotal
subtotal = food + addOnTotal;
taxAmmount = food * tax;
total = taxAmmount + food;
txtSubtotal.Text = subtotal.ToString("c");
txtTax.Text = tax.ToString("c");
txtTotal.Text = total.ToString("c");
}
}
}
【问题讨论】:
-
这对你有用吗?告诉我
-
用
btn_PlaceOrder替换groupHamburger确实修复了错误,尽管它仍然不会更改每次点击的文本,decimal addOnTotal=0;也不起作用。 -
它应该可以工作,根据您提供的代码
标签: c# arrays visual-studio event-handling