Большое количество классов в структуре .Net помечены как "запечатанные", что препятствует тому, чтобы вы наследовали эти классы своим. Несомненно, это противоречит природе объектной ориентации, где вы можете расширить и переопределить поведение существующих объектов.
Есть ли веская причина существования ключевого слова "запечатанное"?
В качестве примера, NotifyCollectionChangedEventArgs в Silverlight запечатан. я хотел создайте мою собственную версию ObservableCollection, который поддерживается AddRange и RemoveRange, но Silverlight версия NCCEA не предоставить конструктор, который поддерживает несколько элементов для NewItems и Свойства OldItems, которые уже определены как ILists. Обычно я просто расширьте класс своим вариантом которые перегружают NewItems и Свойства OldItems, но в этом случае Я не могу, и я не вижу причин, почему это должно быть так.