¿Por qué existe la palabra clave 'sellada' en .Net?

Una gran cantidad de clases en el marco .Net están marcadas como 'selladas', lo que le impide heredar esas clases con las suyas. Seguramente esto va en contra de la naturaleza de la orientación a objetos, donde puede extender y redefinir el comportamiento de los objetos existentes.

Existe una buena razón para la existencia de la palabra clave 'sellada'?

Como ejemplo, NotifyCollectionChangedEventArgs en Silverlight está sellado. Quería crear mi propia versión de ObservableCollection que admitiera AddRange y RemoveRange, pero la versión Silverlight de NCCEA no proporciona un constructor que admita múltiples elementos para las propiedades NewItems y OldItems, que ya están definidas como ILists. Por lo general, simplemente extendía la clase con mi propia variante que anulaba las propiedades NewItems y OldItems, pero en este caso no puedo y no veo ninguna razón por la cual ese debería ser el caso.

Respuestas a la pregunta(9)

Su respuesta a la pregunta