c# - 继承自列表<T>

标签 c# list inheritance collections

实现继承自 List<T> 的新类的最快方法是什么? ?

class Animal {}

class Animals : List<Animal> {} // (1)

我遇到的一个问题:通过简单地执行(1),我发现我没有得到从List<T> 继承任何构造函数的好处。 .

最后,我想要Animals表现得像List<T> (例如,可以构建,与 Linq 的兼容性)。但除此之外,我还希望能够添加我自己的自定义方法。

最佳答案

如果你想创建一个公开展示的动物收藏,你不应该继承自List<T>而是继承自 Collection<T> 并使用后缀 Collection在类名中。示例:AnimalCollection : Collection<Animal> .

这由 framework design guidelines 支持,更具体地说:

DO NOT use ArrayList, List<T>, Hashtable, or Dictionary<K,V> in public APIs. Use Collection<T>, ReadOnlyCollection<T>, KeyedCollection<K,T>, or CollectionBase subtypes instead. Note that the generic collections are only supported in the Framework version 2.0 and above.

关于c# - 继承自列表<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5376203/

相关文章:

c# - 无法通过 NUnit Mock 的 SetupSequence 使用多个返回

c++ - 如何将迭代器类型转换为其原始结构

Python - 尝试存储列表数组时陷入循环

C、结构指针多态

java - Java 中使用泛型进行继承

Java继承问题: going beyond the vtable

c# - 重写 == 运算符。如何与 null 进行比较?

c# - 为什么扩展在@helper 中不可用?

Python 对象列表更新

c# - "using"方法内的语句会导致数据损坏或访问冲突的麻烦?