簡體   English   中英

Visual Studio Win表單

[英]Visual Studio Win Form

我在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");



        }
    }

}

這條線有問題

 hamburger.CheckedChanged += new System.EventHandler(groupHamburger.Checked);

它應該是

hamburger.CheckedChanged += new System.EventHandler(btnPlaceOrder_Click);

因為CheckedChanged事件處理程序具有期望處理程序函數的簽名,該函數具有將sender & EvenArgs作為參數button1_Click(object sender, EventArgs e)


對於第二個錯誤

//Use of unassigned variable for addOnTotal
        subtotal = food + addOnTotal;

您必須將addOnTotal變量初始化為默認值,因為它與in function一起使用,根據指南,方法本地的所有變量都應初始化,因此請執行以下操作

decimal addOnTotal=0; 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM