Как реализовать настраиваемую типобезопасную коллекцию с использованием универсальных коллекций?
Я использовал строго типизированную коллекцию, основанную на 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) { }
}