Compartilhar via


OpCodes.Box Campo

Definição

Converte um tipo de valor em uma referência de objeto (tipo O).

public: static initonly System::Reflection::Emit::OpCode Box;
public static readonly System.Reflection.Emit.OpCode Box;
 staticval mutable Box : System.Reflection.Emit.OpCode
Public Shared ReadOnly Box As OpCode 

Valor do campo

Comentários

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

Formatar Formato de assembly Descrição
8C <T> Caixa valTypeToken Converta um tipo de valor (do tipo especificado em ) em valTypeTokenuma referência de objeto verdadeira.

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

  1. Um tipo de valor é enviado por push para a pilha.

  2. O tipo de valor é exibido da pilha; a box operação é executada.

  3. Uma referência de objeto para o tipo de valor "boxed" resultante é enviada 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 ou na pilha.

  • 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 box instrução converte o tipo de valor 'raw' (unboxed) em uma referência de objeto (tipo O). Isso é feito criando um novo objeto e copiando os dados do tipo de valor para o objeto recém-alocado. valTypeToken é um token de metadados que indica o tipo do tipo de valor na pilha.

OutOfMemoryException será gerado se não houver memória suficiente para atender à solicitação.

TypeLoadException será gerado se a classe não puder ser encontrada. Normalmente, isso é detectado quando a MSIL (Microsoft Intermediate Language) é convertida em código nativo, em vez de em runtime.

Emit A seguinte sobrecarga de método pode usar o box opcode:

Aplica-se a