-1

仍在学习 c# 并弄乱 GUI,我遇到了这个问题,我一遍又一遍地查看代码,不明白为什么我的 Order 类不会被实例化。一切对我来说都很好。我在这里缺少一个基本概念吗?

 public partial class Form1 : Form
 {
    public Form1()
    {
        InitializeComponent();
    }
    private void Form1_Load(object sender, EventArgs e)
    {
        newOrder = new Order ();
        for (int i = 0; i < newOrder.menuEntree.Length; i++)
        {
            this.listBox.Items.Add(newOrder.menuEntree[i]);
        }
    }
    private void listBox_SelectedIndexChanged(object sender, EventArgs e)
    {
        newOrder.Entree = this.listBox.Text;
    }
    public class Order
    {
        public string[] pastryEntree = new string[] { "Baklava", "Croissant", "Blueberry Muffin" };
        public decimal[] pastryPrice = new decimal[] { 3.00m, 2.50m, 1.75m };

        private string entree;
        private decimal entreePrice;

        public Order()
        {
            entree = "";
            entreePrice = 0;
        }

        public string Entree
        {
            get
            {
                return entree;
            }
            set
            {
                entree = value;
                SetEntreePrice();
            }
        }
        public decimal EntreePrice
        {
            get
            {
                return entreePrice;
            }
        }
        public void SetEntreePrice()
        {
            for (int i = 0; i < pastryPrice.Length; i++)
            {
                if (pastryEntree[i] == entree)
                {
                    entreePrice = pastryPrice[i];
                }
            }
        }
    }
}

}

4

2 回答 2

0

您可能想要替换它:

private void Form1_Load(object sender, EventArgs e)
{
    newOrder = new Order ();
    for (int i = 0; i < newOrder.menuEntree.Length; i++)
    {
        this.listBox.Items.Add(newOrder.menuEntree[i]);
    }
}

private void Form1_Load(object sender, EventArgs e)
{

    for (int i = 0; i < newOrder.menuEntree.Length; i++)
    {
        Order newOrder = new Order ();
        this.listBox.Items.Add(newOrder.menuEntree[i]);
    }
}

您可能希望在 for 循环中声明顺序。否则所有的订单都是同一个实例。

于 2013-09-08T15:35:34.813 回答
0

您尚未将其定义newOrderForm1类的成员,因此当您尝试实例化它时该变量未声明。

public partial class Form1 : Form
{
    Order newOrder;

    ....

}
于 2013-09-08T15:30:26.830 回答