OpCodes.Unbox Campo
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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, é:
Uma referência de objeto é empurrada para a pilha.
A referência do objeto é retirada da pilha e desbloqueada para um ponteiro de tipo de valor.
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: