Файловая система, наверняка. Тогда Вы добираетесь для использования всей функциональности ОС для контакта с этими изображениями - назад взлеты, веб-сервер, даже просто пишущий сценарий пакетных инструментов использования изменений как imagemagic. При хранении их в DB тогда, необходимо будет записать собственный код для решения этих проблем.
Обращаясь к ECMA-335 , оператор is
генерирует инструкцию IL модели объекта isinst
(раздел III §4.6), которая является частью базового набора команд, в отличие от того, что он является частью библиотеки отражений (Раздел IV §5.5).
Редактировать: Оператор is
чрезвычайно эффективен по сравнению с библиотекой отражения. Вы можете выполнить в основном тот же тест намного медленнее с помощью отражения:
typeof(T).IsAssignableFrom(obj.GetType())
Редактировать 2: Вы не правы относительно эффективности инструкций castclass
и isinst
(которые теперь у вас отредактировано вне поста). Они очень оптимизированы для любой практической реализации виртуальных машин. Единственная реальная проблема производительности - это возможность castclass
вызвать исключение,
Оператор is
по существу определяет, возможно ли приведение, но вместо того, чтобы генерировать исключение, когда приведение невозможно, он возвращает false
. Если вы рассматриваете литье отражения, то это тоже отражение.
РЕДАКТИРОВАТЬ:
После некоторого исследования я обнаружил, что преобразование выполняется в IL по инструкции castclass
, а -
] соответствует инструкции isinst
. FxCop имеет правило , которое предупреждает вас, если вы выполняете ненужные преобразования, сначала используя isinst
, а затем инструкцию castclass
. Даже несмотря на то, что операции эффективны, они все равно требуют затрат на производительность.
Другие языки имеют информацию о времени выполнения, достаточную для поддержки динамического приведения типов, и все же ничего, что можно было бы описать как отражение (очевидным примером является C ++).
Таким образом, отражение относится к дополнительным возможностям, выходящим за рамки простого обнаружение типа объекта. "Отражение" на объекте подразумевает, например, способность ходить по его членам.