以前「C# コレクションクラスを自作してみる(1/2)」でも紹介していますが、今回は、このICollectionクラスの基本について書きます。
説明
MSDNなどでは、「ジェネリック コレクションを操作するメソッドを定義します」と書かれています。
ポイントは、「ジェネリック コレクションを操作する」インターフェースクラスということです。
実装から見た「操作」は
- 項目の数を知る
- 項目を追加する
- 項目を全削除(クリア)する
- 項目を削除する
- 項目に一致するものがあるかをチェックする
で、他は追加の操作という位置づけです。
ICollection<T>のプロパティ
int Count | コレクションが保持している項目の数を返します。 |
bool IsReadOnly | このコレクションが読み取り専用かどうかを返します。 読み取り専用の場合はtrueを返します。 |
ICollection<T>のメソッド
このICollection<T>と書いている’T’ですが、これはコレクションが取り扱う項目の型で、実装ではTの部分がintやdouble、stringなどの型(自作のクラスも指定できます)になります。
void Add(T item) | このコレクションの item を追加します。 |
void Clear() | このコレクションの項目をすべて削除します。 |
bool Contains(T item) | このコレクションに item に一致する項目が格納されているかを判断します。 |
void CopyTo(T[] array, int arrayIndex) | arrayIndex で指定したインデックスから配列 array に項目のコピーを格納して返します。 |
bool Remove(T item) | このコレクション中の item に一致する最初の項目を削除します。 |
インターフェースクラス
今回のICollection<T>などは、classではなくinterfaceで宣言されており、ICollection<T>でインスタンスを生成したりすることはありません。
実装はこの派生クラスで行うことになります。
詳しくは、「C# コレクションクラスを自作してみる(1/2)」や、「C# コレクションクラスを自作してみる(2/2)」を参考にしてみてください。