OpCodes.Unbox Campo

Definição

Converte a representação em caixa de um tipo de valor para a sua forma sem caixa.

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 

Valor de Campo

Observações

A tabela seguinte lista o formato hexadecimal e assembly da Microsoft Intermediate Language (MSIL) da instrução, juntamente com um breve resumo de referência:

Formato Formato de Montagem Description
79 <T> abrir a caixa valType Extrai os dados do tipo de valor de obj, a sua representação em caixa.

O comportamento de transição da pilha, por ordem sequencial, é:

  1. Uma referência de objeto é empurrada para a pilha.

  2. A referência do objeto é retirada da pilha e desbloqueada para um ponteiro de tipo de valor.

  3. O ponteiro de tipo de valor é empurrado para a pilha.

Um tipo de valor tem duas representações separadas dentro da Common Language Infrastructure (CLI):

  • Uma forma 'bruta' usada quando um tipo de valor está embutido noutro objeto.

  • Uma forma 'em caixa', onde os dados do tipo de valor são encapsulados (em caixa) num objeto para que possam existir como uma entidade independente.

A unbox instrução converte a referência do objeto (tipo O), a representação em caixa de um tipo de valor, num ponteiro de tipo de valor (um ponteiro gerido, tipo &), a sua forma não encaixada. O tipo de valor fornecido (valType) é um token de metadados que indica o tipo de valor contido no objeto em caixa.

Ao contrário de Box, que é necessário para fazer uma cópia de um tipo de valor para uso no objeto, unbox não é obrigado a copiar o tipo de valor do objeto. Normalmente, calcula simplesmente o endereço do tipo de valor que já está presente dentro do objeto em caixa.

InvalidCastException é lançado se o objeto não estiver encaixado como valType.

NullReferenceException é lançado se a referência do objeto for uma referência nula.

TypeLoadException é lançado se o tipo valType de valor não for encontrado. Isto é tipicamente detetado quando instruções da Microsoft Intermediate Language (MSIL) são convertidas para código nativo, em vez de em tempo de execução.

O seguinte Emit método de sobrecarga pode usar o unbox opcode:

Aplica-se a