【发布时间】:2011-03-30 12:39:23
【问题描述】:
我在实现 IEnumerable 接口的对象池中有以下代码。
public IEnumerable<T> ActiveNodes
{
get
{
for (int i = 0; i < _pool.Count; i++)
{
if (_pool[i].AvailableInPool)
{
yield return _pool[i];
}
}
}
}
永远不会收集 _pool 中的任何元素,因为池的目的是保留对所有元素的引用以防止垃圾产生。
这段代码中的任何内容都会产生垃圾吗?
(也许 C# 创建了一个 IEnumerable 对象,稍后将被收集?)
【问题讨论】:
标签: c# ienumerable