如果我通过集合属性通过暴露内部成员:是否收集<T>包装IList <T>或枚举IList <T>?
public Collection<T> Entries
{
get { return new Collection<T>(this.fieldImplimentingIList<T>); }
}
当这个属性被称为会发生什么?例如会发生什么时,下面的代码行称为:
T test = instanceOfAbove.Entries[i];
instanceOfAbove[i] = valueOfTypeT;
很清楚,每次这个属性被称为一个新的参考类型创建的,但什么acctually发生什么呢?它是否简单包装下面的IList<T>
,是否列举了IList<T>
并创建了一个新的Collection<T>
实例?如果在for
循环中使用此属性,我担心性能。
'系列'包装'IList '。你为什么把它作为Collection 返回?为什么不把它公开为IEnumerable ?你是否试图阻止修改底层列表? –
感谢您的提问!我没有想到Collection只是一个包装清单;) –