【发布时间】:2017-02-25 03:09:48
【问题描述】:
给定以下类:
class OrderHeader
{
public int orderNo;
public List<OrderDetail> dtlRows = new List<OrderDetail>();
}
class OrderDetail
{
public int rowNo;
public string info;
}
是否可以在 dtlRows 列表中的每个 OrderDetail 对象中添加一个引用来引用父 OrderHeader 对象?就是这样,给定一个 OrderDetail 行,它可以知道来自父标题记录的数据。
所以类会变成:
class OrderDetail
{
public int rowNo;
public string info;
public OrderHeader parentHdrRecord;
}
例子:
OrderHeader h = new OrderHeader();
h.orderNo = 12345;
OrderDetail d = new OrderDetail();
d.rowNo = 1;
d.info = "Test Row";
d.parentHdrRecord = h;
h.dtlRows.Add(d);
这是不好的形式/hacky吗?内存方面的成本高吗?
【问题讨论】:
-
如果orderNo是唯一的,为什么不详细添加呢?
-
对于这种情况,您可以考虑使用嵌套类,使用父级的 ctor 参数(存储引用),因为您可以轻松访问父级的私有成员,然后可以获取行索引,例如,在运行时通过方法调用到父级而不是将其存储为数据成员,如果项目被移动,则可能会不同步。