我在实现 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 对象?)
这段代码中是否生成了任何内容
垃圾?
Yes, yield return
创建一个临时变量IEnumerable<T>
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)