3

クラスから派生した厳密に型指定されたコレクションを使用しましたがCollectionBase、タイプセーフなジェネリック コレクションから継承するように変更したいと考えています。から継承することをお勧めする人もいれList<T>ば、 を使用することをお勧めする人もいますCollection<T>。私がやりたいことはこれです:

1) カスタム クラスがあり、そのカスタム クラスのインスタンスのみを保持するコレクションを作成しています。

2) カスタム コレクション クラスに含めたいプロパティとメソッドがいくつかあります。たとえば、IdプロパティまたはIsBlahBlah()メソッドが必要です。

これをどのように進める必要がありますか?CollectionBaseクラスから派生していたとき、InnerListプロパティを使用して要素にアクセスしていました。Items使用することを選択した場合、プロパティを使用する必要がありますCollection<T>か?

次のようなことをしています:

public class MyCustomCollection : Collection<MyCustomClass>
{
    public int ExtraProperty { get; set; }

    public bool IsFortyTwo(MyCustomClass) { }
}

正しい方法?のメソッドに干渉することなく、すぐに正しく動作しCollection<T>ますか?

追加の質問: Google で「厳密に型指定されたコレクション」を検索すると、常にそのCollectionBaseクラスを含む結果が表示されます。厳密に型指定されたコレクションとタイプセーフ コレクション違いは何ですか?

4

1 に答える 1

1

このように実装する必要があると思います

public class MyCustomCollection
{
    private Collection<MyCustomClass> _collection = new Collection<MyCustomClass>();
    public int ExtraProperty { get; set; }
    public bool IsFortyTwo(MyCustomClass) { }
}
于 2012-11-15T13:50:12.273 に答える