Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!

Add и Remove точно так же могут сигнализировать о множественном изменении.
обрушил производительность (-1)
зато легализовал творчество разработчиков, неспособных прочесть спецификацию (+100500)
Так что я считаю, что изменение документации решило одну проблему, но одновременно создало другую (для решения которой нужно добавить ещё один элемент в перечисление)
И все проблемы связаны отнюдь не с неким «реальным контрактом», а с застарелыми багами в реализации.
Ещё было бы неплохо в документации указать, что Reset означает очистку коллекции и добавить элемент, сигнализирующий о произвольном изменении коллекции.
А если бы в документации было сказано, что Add означает добавление одного элемента, то никто бы не пытался реализовывать коллекции таким образом, что Add означает добавление нескольких элементов, и не сталкивался бы с проблемами.
В любой непонятной ситуации проще всего не раздумывая обвинить во всём конечных исполнителей
Однако давайте подумаем, а почему конечные исполнители реализовали «кривые контролы из поставки WPF» именно так?
А может быть их интуитивные ожидания о поведении ObservableCollection отличались от того, что написано в msdn? Звучит правдоподобно.
Мол, ребята, вызубрите наизусть весь msdn и регулярно его повторяйте.
В данном же случае, судя по всему, формальная документация писалась для абстрактного интерфейса, а интуитивные ожидания формировались на основании конкретного класса
Это не имеет значения — важен результат.
«Интуитивные разработчики» все равно написали бы по-своему, они же документацию не читают по определению.Интуитивные ожидания формируются не случайным образом, а на основании поведения конкретного класса. Я думал, что довольно подробно описал этот процесс, даже два примера привёл. Мне кажется, вы меня регулярно троллите. В прошлой статье вы меня 5 раз спросили про утечки памяти и слабые события, и я вам 5 раз ответил: [1], [2], [3], [4], [5]. В этой статье всё с ног на голову пытаетесь перевернуть.
Осторожно, истинные контракты классов могут отличаться от формальных