5
ReadOnlyCollection或IEnumerable用于公开成员集合?
如果调用代码仅对集合进行迭代,是否有任何理由将内部集合公开为ReadOnlyCollection而不是IEnumerable? class Bar { private ICollection<Foo> foos; // Which one is to be preferred? public IEnumerable<Foo> Foos { ... } public ReadOnlyCollection<Foo> Foos { ... } } // Calling code: foreach (var f in bar.Foos) DoSomething(f); 如我所见,IEnumerable是ReadOnlyCollection接口的子集,它不允许用户修改集合。因此,如果IEnumberable接口足够了,那就可以使用它。这是推理的正确方法,还是我错过了一些东西? 谢谢/ Erik