OpCodes.Mkrefany Campo

Definição

Envia por push uma referência tipada para uma instância de um tipo específico na 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 Microsoft linguagem intermediária (MSIL) da instrução, juntamente com um breve resumo de referência:

Formato Formato de assembly Description
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 para a pilha.

  2. O ponteiro é estourado 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 int, e manter 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 destinatário pode usar as instruções e Refanyval o Refanytype tipo (classe) e o endereço, respectivamente.

TypeLoadException será gerado se class não for possível encontrar. 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 mkrefany opcode:

Aplica-se a