对象和集合初始化程序-自赋值
本文关键字:赋值 程序 初始化 集合 对象 | 更新日期: 2023-09-27 18:29:01
我在程序中使用对象和集合初始化器,并思考如何获得下面的示例。
Orders.Add(new Order()
{
id = 123,
date = new datetime(2012,03,26)
items = new OrderItems()
{
lineid = 1,
quantity = 3,
order = ?? // want to assign to current order.
}
}
如何将新创建的订单分配给订单项目?
您在这里尝试的是不可能的。不能引用从对象初始值设定项主体中构造的对象。您需要将其分解为一组单独的步骤
var local = new Order() {
id = 123,
date = new datetime(2012, 03, 26);
};
local.items = new OrderItems() {
lineid = 1;
quantity = 3;
order = local;
};
Orders.Add(local);
如果Order.items
是一个属性,您可以在属性设置器中放入类似的内容
public class Order
{
private OrderItems _items;
public OrderItems items
{
get { return _items; }
set
{
_items = value
_items.order = this
}
}
}
然后你可以从初始值设定项中取出顺序:
Orders.Add(new Order()
{
id = 123,
date = new datetime(2012,03,26)
items = new OrderItems()
{
lineid = 1,
quantity = 3,
}
}