我正在创建类似自助服务终端程序的程序,您可以在其中使用Windows窗体订购食物。我必须创建一个Toppings类,其中包含三个数组字段。
指令说构造函数必须接受一个参数:所有三个并行数组的长度。
我不确定该怎么做。我已经研究并了解了并行数组的工作原理,但是我不知道如何在单个参数中实现并获得所有三个长度。我不确定我是否正确执行此操作?
这是我到目前为止所拥有的:
namespace DeliAndPizza
{
class Toppings
{
bool[] ToppingList = { false, false, false, false, false, false, false, false, false, false, false, false };
string[] ToppingNames = { "Bacon", "Extra Cheese", "Hot Peppers", "Mayo", "Mushrooms", "Oil", "Onion", "Onion", "Oregano", "Peppers", "Sausage" };
double[] ToppingPrices = {1.00, 1.50, 0.00, 0.00, 1.00, 0.00, 0.00, 1.00, 0.00, 1.00, 1.00, 0.00 };
public Toppings()
{
}
public Toppings(bool[] list, string[] name, double[] price)
{
this.ToppingList = list;
this.ToppingNames = name;
this.ToppingPrices = price;
}
}
}
这是给定的类图:
答案 0 :(得分:1)
假设所有数组的长度相同,则只需将length
参数作为单个参数传递给构造函数,然后在其中初始化数组的长度,而不是在定义字段的位置定义长度:
namespace DeliAndPizza
{
class Toppings
{
bool[] ToppingList;
string[] ToppingNames;
double[] ToppingPrices;
public Toppings(): this(12) {} //default length is 12
public Toppings(int length)
{
ToppingList = new bool[length];
ToppingNames = new string[length];
ToppingPrices = new double[length];
}
public Toppings(bool[] list, string[] name, double[] price)
{
this.ToppingList = list;
this.ToppingNames = name;
this.ToppingPrices = price;
}
}
}
一个旁注;当前,您正在使用bool[] ToppingList;
之类的定义。如果您希望能够在类的实例上访问此值(而不是仅在类内部),则需要将它们公开/理想地将其转换为属性,如下所示:
public bool[] ToppingList {get;set;}
如果您不希望外部使用它们,则命名约定将使用小写的首字母;例如
bool[] toppingList;
Here's the MS documentation on naming standards。
官方指南仅确定外部可见的名称;因此,您的课程中定义的私有字段不会包含在上述文档中。但是,there are conventions。