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 

Значение поля

Комментарии

В следующей таблице перечислены шестнадцатеричные и шестнадцатеричные и Microsoft формат сборки промежуточного языка (MSIL) инструкции, а также краткая сводка по ссылке:

Формат Формат сборки Description
79 <T> Unbox valType Извлекает данные типа значений из objполя.

Переходное поведение стека в последовательном порядке:

  1. Ссылка на объект отправляется в стек.

  2. Ссылка на объект возвращается из стека и распаковка на указатель типа значения.

  3. Указатель типа значения передается в стек.

Тип значения имеет два отдельных представления в инфраструктуре общего языка (CLI):

  • Форма raw, используемая при внедрении типа значения в другой объект.

  • Форма "boxed", в которой данные в типе значения упаковываются (прямоугольные) в объект, чтобы он может существовать в качестве независимой сущности.

Инструкция unbox преобразует ссылку на объект (тип O), прямоугольное представление типа значения в указатель типа значения (управляемый указатель, тип &), его распаковку. Указанный тип значения (valType) — это маркер метаданных, указывающий тип значения, содержащийся в поле.

В отличие Boxот того, что требуется для копирования типа значения для использования в объекте, unbox не требуется копировать тип значения из объекта. Как правило, он просто вычисляет адрес типа значения, который уже присутствует внутри прямоугольного объекта.

InvalidCastException вызывается, если объект не указан как valType.

NullReferenceException вызывается, если ссылка на объект является пустой ссылкой.

TypeLoadException вызывается, если не удается найти тип valType значения. Обычно это обнаруживается при преобразовании инструкций Microsoft промежуточного языка (MSIL) в машинный код, а не во время выполнения.

Следующая Emit перегрузка метода может использовать unbox код opcode:

Применяется к