次のコードに出くわしました:
var collection = new Collection<string>();
Collection クラスがあまり使われているのを見たことがなく、その目的についての情報があまり見つかりません。.NET Framework のソースを見ると、List メンバー フィールドが格納されているため、List の単なるラッパーにすぎません。そのコンストラクタは次のとおりです。
public Collection()
{
this.items = (IList<T>) new List<T>();
}
また、IList も実装しています。したがって、コレクションを次のように宣言できます。
IList<string> collection = new Collection<string>();
私にとっては、代わりにリストを作成することと機能的に同等です。
IList<string> collection = new List<string>();
では、独自のコードで List に対して使用したいのはいつでしょうか? 他の .NET コレクションの基本クラスであることはわかりますが、なぜこれを(内部および/または抽象ではなく) public 具象として含めるのでしょうか?
重複の可能性に関するコメントについて- 関連する質問への回答は、 Collection クラスが基本クラスとして使用されることになっていると言っているようです。私が本当に求めているのは、それが違うことです:
- 独自のコードで使用する場合は、代わりに List を基底クラスとして使用してみませんか?
- List の代わりに、独自のコードで新しい Collection をインスタンス化することは本当に理にかなっていますか?
- 基本クラスとして機能するためだけに提供されているのであれば、なぜ抽象化されないのでしょうか?