Wpf 为什么BitmapImage是一个密封类?

Wpf 为什么BitmapImage是一个密封类?,wpf,bitmapimage,sealed,Wpf,Bitmapimage,Sealed,我正要从BitmapImage类继承,这时我注意到它被密封了,我快速查看了一下,但找不到它被密封的原因 有人知道这是为什么吗 谢谢打开一个类相当于说“我希望人们从这种类型继承”。这会导致人们从该类型继承,无论这是否是一个好主意(请参见大量StackOverflow问题,其中人们从List继承为例) 由于不可避免的人会从中继承,这意味着您必须设计一个要继承的类。这确实会产生后果,并且会增加开发和测试时间的成本。该类型的作者可能不想做这项工作,或者有不可继承的原因,决定密封该类型很可能是密封的,因为

我正要从BitmapImage类继承,这时我注意到它被密封了,我快速查看了一下,但找不到它被密封的原因

有人知道这是为什么吗


谢谢

打开一个类相当于说“我希望人们从这种类型继承”。这会导致人们从该类型继承,无论这是否是一个好主意(请参见大量StackOverflow问题,其中人们从
List
继承为例)

由于不可避免的人会从中继承,这意味着您必须设计一个要继承的类。这确实会产生后果,并且会增加开发和测试时间的成本。该类型的作者可能不想做这项工作,或者有不可继承的原因,决定密封该类型

很可能是密封的,因为它在设计中有特定的使用场景,它意味着:

专门的位图源,为使用可扩展应用程序标记语言(XAML)加载图像而优化

通过对类进行密封,可以更安全地从XAML中使用,因为XAML解析器总是准确地知道要创建什么


如果你想写自己的,你应该从派生,这是抽象的,并且是子类化的。

特别是在开发类库时,除非你是专门为继承而设计的,否则你的外部公开的类在默认情况下应该是密封的。如果该类的用户希望在将来的某个时候继承,那么解封该类很容易而且不会中断


如果一开始类是未密封的,就再也回不去了。

我知道密封的意思,我只是想知道为什么位图图像是。:)@TWith2Sugars,这里有一个反问题,你为什么要继承它?我本来打算用一些时髦的编码,但我要用BitmapSource代替@Reed CopseyChampion,这就是我需要知道的全部