为什么BitmapImage是密封类?

时间:2010-02-12 18:07:34

标签: wpf bitmapimage sealed

当我注意到它已被密封时,我正要从BitmapImage类继承,我已快速浏览一下,但我找不到密封的原因。

任何人都知道这是为什么?

由于

3 个答案:

答案 0 :(得分:5)

BitmapImage很可能是封闭的,因为它的设计中有一个特定的使用场景,它应该是:

  

专门用于使用可扩展应用程序标记语言(XAML)加载图像的BitmapSource。

通过使类密封,使得从XAML使用更安全,因为XAML解析器将始终确切知道将要创建的内容。

如果你想自己编写,你应该从BitmapSource派生而来,这是抽象的,并且打算被子类化。

答案 1 :(得分:2)

将课程启封是相当于说“我希望人们从这种类型继承”。这会导致人们继承该类型是否是一个好主意(请参阅人们从List<T>继承的众多StackOverflow问题作为示例)。

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

答案 2 :(得分:2)

特别是在开发类库时,除非您专门为继承而设计,否则默认情况下应密封外部公开的类。如果该类的用户想要在将来的某个时刻继承,那么开启该课程就容易且不会中断。

如果你从开始课程开始,你就永远不会回去。