我曾使用继承自CollectionBase
类的强类型集合,现在希望将其改为继承自类型安全的泛型集合。一些人建议继承自List<T>
,然而其他一些人则建议使用Collection<T>
。我的意图是:
1)我有一个自定义类,并正在创建一个只包含该自定义类实例的集合。
2)我想让自定义集合类拥有一些属性和方法。例如,它应该具有一个Id
属性,或者它应该具有一个IsBlahBlah()
方法。
我该如何进行下一步?当我从CollectionBase
类派生时,我使用InnerList
属性来访问元素。如果我选择使用Collection<T>
,那么我应该使用Items
属性吗?
做这样的事情是否可行:
public class MyCustomCollection : Collection<MyCustomClass>
{
public int ExtraProperty { get; set; }
public bool IsFortyTwo(MyCustomClass) { }
}
正确的方法是什么?它是否可以直接使用而不会干扰Collection<T>
中的方法?
附加问题:当我在Google上搜索“强类型集合”时,总是会显示包含CollectionBase
类的结果。 强类型集合和类型安全集合之间有什么区别?
private Collection<MyCustomClass> _collection
时,Collections.Add()
方法如何知道我的新集合并将项目添加到其中?我认为它有自己的内部集合。 - hattenn