OpCodes.Unbox Поле
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Преобразует тип значения из упакованной формы в распакованную.
public: static initonly System::Reflection::Emit::OpCode Unbox;
public static readonly System.Reflection.Emit.OpCode Unbox;
staticval mutable Unbox : System.Reflection.Emit.OpCode
Public Shared ReadOnly Unbox As OpCode
Значение поля
Комментарии
В следующей таблице приведен шестнадцатеричный формат инструкции и формат сборки MSIL, а также краткая справочная сводка:
Формат | Формат сборки | Описание |
---|---|---|
79 <T > |
Unbox valType |
Извлекает данные типа значения из obj , его упаковав представление. |
Переходный режим стека в последовательном порядке:
Ссылка на объект помещается в стек.
Ссылка на объект выскочила из стека и распаковывала указатель типа значения.
Указатель типа значения помещается в стек.
Тип значения имеет два отдельных представления в cli:
Необработанная форма, используемая, когда тип значения внедрен в другой объект.
Форма "упакована", где данные в типе значения упаковываются (упаковываются) в объект, чтобы он смог существовать в качестве независимой сущности.
Инструкция unbox
преобразует ссылку на объект (тип O
), упаковаемое представление типа значения в указатель типа значения (управляемый указатель, тип &
), его неконсервированную форму. Предоставленный тип значения (valType
) — это маркер метаданных, указывающий тип типа значения, содержащегося в упакованном объекте.
В отличие от Box, который требуется для создания копии типа значения для использования в объекте, unbox
не требуется копировать тип значения из объекта . Обычно он просто вычисляет адрес типа значения, который уже присутствует внутри упаковаемого объекта.
InvalidCastException возникает, если объект не упаковывается как valType
.
NullReferenceException возникает, если ссылка на объект является пустой ссылкой.
TypeLoadException возникает, если не удается найти тип valType
значения. Обычно это обнаруживается при преобразовании инструкций MSIL в машинный код, а не во время выполнения.
Emit Следующая перегрузка unbox
метода может использовать код операции: