Я читал на C# Image class. Этот класс является абстрактным. Поскольку я являюсь абстрактным классом, я не могу сделать объект из него, но он имеет метод Image.FromFile(string path);
, который возвращает объект Bitmap
. Теперь в коде Image img = Image.FromFile(path)
работает, но Bitmap img = Image.FromFile(path)
нет. Однако Bitmap img = (Bitmap) Image.FromFile(path)
действительно работает!C# Изображение/растровый суперкласс/подкласс Кастинг аномалии
Мой вопрос заключается в следующем: зачем мне явное приведение в растровое изображение, если тип возвращаемого метода - битмап? Что происходит?
Чтобы уточнить: Я знаю, что документы MSDN говорят, что метод возвращает изображение. Когда я использую контрольную точку для проверки, изображение имеет растровое изображение. Даже если бы он имел изображение, это было бы еще более запутанным для меня, так как изображение абстрактно, поэтому я не могу иметь объект изображения, нет? Я пропустил что-то очевидное здесь?
Потому что он возвращает «изображение» не «битмап» –
@Ben Robinson. Но если я использую контрольную точку для проверки, это битмап. Изображение абстрактно, и если оно вернет изображение, я бы тогда не имел объект изображения, которого я не могу, потому что он абстрактный? – Comorbid
Приятно объяснено здесь http://stackoverflow.com/questions/5571767/image-class-and-constructor-of-bitmap-type – Laky