我需要设计自己的自定义GenericCollection
类。现在我有很多选项可以使用IEnumerable
、ICollection
和派生它IList
,稍后会提供一些附加功能。
我有点困惑,如果我一起去,IEnumerable<T>
我可能需要声明对象以实际保存集合,就像在这种情况下一样_list
。
public class GenericCollection<T> : IEnumerable<T>
{
private List<T> _list;
//...
}
但是如果我使用ICollection<T>
or IList<T>
,我不需要声明List
对象,因为它是隐式可用的。
public class GenericCollection<T> : IList<T>
{
// no need for List object
//private List<T> _list;
//...
}
这两种方法在性能方面有什么区别?
在哪种情况下,每一个都是首选,尤其是在设计您自己的系列时。我对性能良好的轻量级系列感兴趣。我认为这可以通过使用来实现,IEnumerable<T>
但是究竟有什么强有力的理由去使用它呢?
我已经查看了一些现有的帖子,但没有一个提供所需的信息。