Как реализовать настраиваемую типобезопасную коллекцию с использованием универсальных коллекций?

Я использовал строго типизированную коллекцию, основанную на 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 учебный класс. В чем разница между строго типизированными коллекциями и типизированными коллекциями?

1 ответ

Я думаю, что его необходимо реализовать, как это

public class MyCustomCollection
{
    private Collection<MyCustomClass> _collection = new Collection<MyCustomClass>();
    public int ExtraProperty { get; set; }
    public bool IsFortyTwo(MyCustomClass) { }
}
Другие вопросы по тегам