OpCodes.Unbox Campo
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Converte a representação em caixa de um tipo de valor em seu formulário 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 do campo
Comentários
A tabela a seguir lista o formato de assembly hexadecimal e Microsoft linguagem intermediária (MSIL) da instrução, juntamente com um breve resumo de referência:
| Formato | Formato de assembly | Description |
|---|---|---|
79 <T> |
Unbox valType |
Extrai os dados de tipo de valor de objsua representação em caixa. |
O comportamento de transição da pilha, em ordem sequencial, é:
Uma referência de objeto é enviada por push para a pilha.
A referência de objeto é exibida da pilha e desacomparada para um ponteiro de tipo de valor.
O ponteiro do tipo de valor é enviado por push para a pilha.
Um tipo de valor tem duas representações separadas na CLI (Common Language Infrastructure):
Um formulário 'bruto' usado quando um tipo de valor é inserido em outro objeto.
Um formulário 'boxed', em que os dados no tipo de valor são encapsulados (em caixa) em um objeto para que possam existir como uma entidade independente.
A unbox instrução converte a referência de objeto (tipo O), a representação em caixa de um tipo de valor, em um ponteiro de tipo de valor (um ponteiro gerenciado, tipo &), seu formulário sem caixa. O tipo de valor fornecido (valType) é um token de metadados que indica o tipo de valor contido no objeto com caixa.
Diferentemente Boxdo que é necessário para fazer uma cópia de um tipo de valor para uso no objeto, unbox não é necessário copiar o tipo de valor do objeto. Normalmente, ele simplesmente calcula o endereço do tipo de valor que já está presente dentro do objeto em caixa.
InvalidCastException será gerado se o objeto não estiver em caixa como valType.
NullReferenceException será gerada se a referência de objeto for uma referência nula.
TypeLoadException será gerado se o tipo valType de valor não puder ser encontrado. Isso normalmente é detectado quando Microsoft instruções msil (linguagem intermediária) são convertidas em código nativo, em vez de em runtime.
A sobrecarga do método Emit a seguir pode usar o unbox opcode: