Compartilhar via


OpCodes.Mkrefany Campo

Definição

Envia uma referência tipada a uma instância de um tipo específico para a pilha de avaliação.

public: static initonly System::Reflection::Emit::OpCode Mkrefany;
public static readonly System.Reflection.Emit.OpCode Mkrefany;
 staticval mutable Mkrefany : System.Reflection.Emit.OpCode
Public Shared ReadOnly Mkrefany 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
C6 <T> mkrefany class Envia por push uma referência tipada do tipo class para a pilha.

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

  1. Um ponteiro para parte dos dados é enviado por push para a pilha.

  2. O ponteiro é exibido e convertido em uma referência tipada do tipo class.

  3. A referência tipada é enviada por push para a pilha.

A mkrefany instrução dá suporte à passagem de referências tipada dinamicamente. O ponteiro deve ser do tipo &, *ou native inte conter o endereço válido de um pedaço de dados. Class é o token de classe que descreve o tipo dos dados referenciados pelo ponteiro . Mkrefany envia uma referência tipada na pilha, fornecendo um descritor opaco do ponteiro e do tipo class.

A única operação válida permitida em uma referência tipada é passá-la para um método que requer uma referência tipada como um parâmetro. Em seguida, o receptor pode usar as Refanytype instruções e Refanyval para recuperar o tipo (classe) e o endereço, respectivamente.

TypeLoadException será gerado se class não for possível encontrar. Normalmente, isso é detectado quando as instruções da MSIL (Microsoft Intermediate Language) são convertidas em código nativo em vez de em runtime.

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

Aplica-se a