Триггер на добавление в List<T>

197
29 марта 2018, 06:09

В общем, хочу что бы перед добавление записи в коллекцию у меня выполнялось некоторое действие.

Как я понимаю, мне нужно наследоваться от List<T> и перекрывать метод Add своим или есть еще какие-то варианты? В конечном итоге, для пользователя должно казаться, что он работает с обычным List'ом.

Answer 1

Наследуйтесь от класса Collection<T>, в нем есть специальные protected virtual методы для этого, в частности InsertItem, например. Т.е. вы можете переопределить этот метод в своем наследнике и в нем выполнить необходимые операции, а затем вызвать базовую реализацию, которая фактически вставит элемент (или не вызывать, если в каких-то ситуациях вставка не нужна).

Примером наследования от Collection как раз является упомянутый класс ObservableCollection (здесь можно посмотреть как это реализовано в нем)

PS: Если вы читали Албахари, то должны так же знать о классе CollectionBase - необобщенной версии Collection<T>.

READ ALSO
Понимание шифрования данных .net

Понимание шифрования данных .net

Хочу уточнить пару вещей

202
С# взаимодействие потоков

С# взаимодействие потоков

Как реализовать обмен данными между основным циклом и потоками? Допустим есть такой псевдокод Пример:

228
Как работать с числами с плавающей запятой в С#?

Как работать с числами с плавающей запятой в С#?

Есть вот такой код простого конвертера валют(SOM - это валюта Кыргызстана)

206