3

我用一個強類型集合從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上搜索「Strongly Typed Collection」時,它總是顯示包含CollectionBase類的結果。是什麼強類型集合類型安全的集合之間的區別?

回答

1

我認爲它需要實現這樣

public class MyCustomCollection 
{ 
    private Collection<MyCustomClass> _collection = new Collection<MyCustomClass>(); 
    public int ExtraProperty { get; set; } 
    public bool IsFortyTwo(MyCustomClass) { } 
} 
+0

,我不明白的事情是,當我添加了'私人收藏 _collection',怎麼說'Collections.Add ()'方法知道我的新集合,並添加項目?不知何故,我認爲它有內在的收藏。 – hattenn