自分のカスタムGenericCollection
クラスを設計する必要があります。今では、IEnumerable
,ICollection
、およびIList
を使用して派生するオプションがたくさんあります。後でいくつかの機能が追加されています。IEnumerableとICollection対ILolistを使用したカスタムコレクション
私はIEnumerable<T>
と一緒に行くと、この場合のように実際にコレクションを保持するオブジェクトを宣言する必要があるかもしれないと少し混乱しています_list
。
public class GenericCollection<T> : IEnumerable<T>
{
private List<T> _list;
//...
}
が、私はICollection<T>
かIList<T>
で行けば、私はそれが暗黙のうちに利用できるようList
オブジェクトを宣言する必要はありません。
public class GenericCollection<T> : IList<T>
{
// no need for List object
//private List<T> _list;
//...
}
パフォーマンスに関してこれら二つのアプローチの違いは何ですか?
いずれのシナリオでも、特に独自のコレクションを設計する場合は、それぞれのシナリオが優先されます。私は良いパフォーマンスで軽量のコレクションに興味があります。私はこれがIEnumerable<T>
を使用して達成できると思いますが、それに付随するいくつかの強力な理由とともに正確にどのようにですか?
私はいくつかの既存の投稿を見直しましたが、必要な情報を提供していません。
Returning 'IList' vs 'ICollection' vs 'Collection'
最初の例では、_listメンバーを持つ必要はありません。さらに、IListを継承し、IListに関してpublicインターフェイスを実装する場合には、まだいくつかのストレージメカニズムを実装する必要があります –