我认为这些问题很简单,直到我意识到它所引用的TableOrder实例包含两个属性(一个食物和一个饮料)。
所以我的问题是,这是否意味着我需要存储这两个属性,还是为TableOrder创建一个新属性? (我怀疑后者是因为这个类被称为TableOrder。
我已经醒了24小时,现在我正在努力理解这些问题。
任何帮助将不胜感激。
答案 0 :(得分:1)
public class TableBill
{
// the first way of initializing - by just passing the table number
public TableBill(int tableNumber)
{
this.TableNumber = tableNumber;
}
// second option will use the first constructor to set table number (the ':this()' line)
// and then set the order
public TableBill(int tableNumber, TableOrder order)
: this(tableNumber)
{
this.Order = order;
}
// the table number property has a private setter, so it will only be set
// from the constructors.
public int TableNumber { get; private set; }
// a completely public property for setting the order
public TableOrder Order { get; set; }
}
您还可以选择使用可选参数将两个构造函数合并为一个:
public TableBill(int tableNumber, TableOrder order = null)
{
this.TableNumber = tableNumber;
this.Order = order;
}
答案 1 :(得分:0)
当第一个问题谈到On initialisation
时,它可能意味着使用构造函数。
你的课可能是这样的:
public class TableBill
{
public Order Order
{
get
{
return this._order;
}
set
{
this._order = value;
}
}
private Order _order = null;
public TableBill(int tableNumber)
{
// ...
}
public TableBill(int tableNumber, Order order)
{
// check for nulls etc...
// ...
this.Order = order;
}
}