【发布时间】:2012-08-17 16:35:42
【问题描述】:
我遇到了以下代码:
var collection = new Collection<string>();
我没有看到 Collection 类被用得太多,也找不到太多关于它的用途的信息。查看 .NET Framework 源代码,它几乎只是一个 List 的包装器,因为它存储了一个 List 成员字段。它的构造函数如下:
public Collection()
{
this.items = (IList<T>) new List<T>();
}
而且它还实现了 IList。因此,您可以将 Collection 声明为:
IList<string> collection = new Collection<string>();
对我来说,这在功能上等同于创建一个列表:
IList<string> collection = new List<string>();
那么,您什么时候想在您自己的代码中在列表中使用它?我看到它是其他 .NET 集合的基类,但为什么它们会将其包含为 public 具体(而不是内部和/或抽象)?
关于可能重复的 cmets - 相关问题的答案似乎表明 Collection 类应该用作基类。我真正要问的是:
- 如果在您自己的代码中使用,为什么不使用 List 作为基类呢?
- 在 用你自己的代码代替 List?
- 如果真的只是作为基类提供,为什么不是抽象的?
【问题讨论】:
标签: c# .net collections