【发布时间】:2011-09-22 19:25:45
【问题描述】:
我有一个包含一些属性的类,由列表组成。这些列表可以填充一些可能会占用大量内存的 Sharepoint 对象。
我将这个类及其列表属性传递给我的函数,如下所示:
public void InsertFixedLineItems(CacheBundle cb)
{
//work here
}
正如您所见,所讨论的类型称为 CacheBundle,并且在运行时它会大量填充。
为了便于使用,我想进一步本地化确切的列表属性,如下所示:
public void InsertFixedLineItems(CacheBundle cb)
{
List<XYZCacheItem> XYZCacheItems = cb.xyzCacheItems;
List<YYYCacheItem> YYYCacheItems = cb.YYYCacheItems;
List<ZZZCacheItem> ZZZCacheItems = cb.ZZZCacheItems;
}
我的问题是,在上面的分配过程中,代码创建了每个属性的副本,基本上是每个集合。这样做会浪费内存吗?
或者是 XYZCacheItems 仅仅是某种指向 cb.xyzCacheItems 的指针。
如果不是,是否可以创建一个“指针变量”,以便如果我更新 XYZCacheItems -> cb.xyzCacheItems 也会更新?同时不使用额外的(或很少的)内存,并且有两个任务。
【问题讨论】:
标签: c#