OpCodes.Mkrefany Campo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Inserisce un riferimento tipizzato a un'istanza di un tipo specifico nello stack di valutazione.
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
Valore del campo
Commenti
La tabella seguente elenca il formato di assembly Esadecimale e MSIL (Microsoft Intermediate Language), insieme a un breve riepilogo dei riferimenti:
Formato | Formato assembly | Descrizione |
---|---|---|
C6 <T > |
mkrefany class |
Inserisce un riferimento tipizzato di tipo class nello stack. |
Il comportamento di transizione dello stack, in ordine sequenziale, è:
Viene eseguito il push di un puntatore a una parte di dati nello stack.
Il puntatore viene estratto e convertito in un riferimento tipizzato di tipo
class
.Il riferimento tipizzato viene inserito nello stack.
L'istruzione mkrefany
supporta il passaggio di riferimenti tipizzato in modo dinamico. Il puntatore deve essere di tipo &
, *
o native int
e contenere l'indirizzo valido di una parte di dati.
Class
è il token di classe che descrive il tipo di dati a cui fa riferimento il puntatore.
Mkrefany
esegue il push di un riferimento tipizzato nello stack, fornendo un descrittore opaco del puntatore e del tipo class
.
L'unica operazione valida consentita per un riferimento tipizzato consiste nel passarlo a un metodo che richiede un riferimento tipizzato come parametro. Il chiamato può quindi usare le Refanytype istruzioni e Refanyval per recuperare rispettivamente il tipo (classe) e l'indirizzo.
TypeLoadException viene generata se class
non è possibile trovare. Questo viene in genere rilevato quando le istruzioni MSIL (Microsoft Intermediate Language) vengono convertite in codice nativo anziché in fase di esecuzione.
L'overload del metodo seguente Emit può usare il mkrefany
codice operativo: