В общем, хочу что бы перед добавление записи в коллекцию у меня выполнялось некоторое действие.
Как я понимаю, мне нужно наследоваться от List<T>
и перекрывать метод Add
своим или есть еще какие-то варианты?
В конечном итоге, для пользователя должно казаться, что он работает с обычным List'ом.
Наследуйтесь от класса Collection<T>
, в нем есть специальные protected virtual методы для этого, в частности InsertItem
, например. Т.е. вы можете переопределить этот метод в своем наследнике и в нем выполнить необходимые операции, а затем вызвать базовую реализацию, которая фактически вставит элемент (или не вызывать, если в каких-то ситуациях вставка не нужна).
Примером наследования от Collection
как раз является упомянутый класс ObservableCollection
(здесь можно посмотреть как это реализовано в нем)
PS: Если вы читали Албахари, то должны так же знать о классе CollectionBase
- необобщенной версии Collection<T>
.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как реализовать обмен данными между основным циклом и потоками? Допустим есть такой псевдокод Пример:
Есть вот такой код простого конвертера валют(SOM - это валюта Кыргызстана)