为什么 Bitmap.FromFile() 返回一个 Image 类型的对象



这是一个非常简单的问题,一直困扰着我,因为几乎每次我编写代码时,除了这一行,我都会被绊倒。

Bitmap image = Bitmap.FromFile("c:img.jpg");

我总是直观地假设从类 X 中名为 FromFile 的静态方法返回的对象属于 X 类型。

我意识到显然,如果我愿意,我可以投射回Bitmap,而且我确定我错过了一些东西,但根据标题,为什么Bitmap.FromFile(Path)返回图像而不是Bitmap?这只是一个考虑不周的设计,还是在这种情况下返回父类有更根本的原因?

FromFileImage上的一个静态方法,它是Bitmap的基本类型。您可以通过 Bitmap 访问静态方法,即使您确实在调用 Image.FromFile 。我想位图可以用自己的返回位图来隐藏(或阴影(图像上的 FromFile,但无论出于何种原因,它都不是那样做的。

还有其他子类型的Image,例如Metafile(扩展名为.wmf的图像(。这里的目的是实现多态行为 - 您可以使用 FromFile 加载图像,而不关心使用什么基础实现来处理图像。

最新更新