Espandi Riduci a icona
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale
Questo argomento non è stato ancora valutato - Valuta questo argomento

Campo OpCodes.Mkrefany

Inserisce un riferimento tipizzato a un'istanza di un tipo specifico nello stack di valutazione.

Spazio dei nomi:  System.Reflection.Emit
Assembly:  mscorlib (in mscorlib.dll)
public static readonly OpCode Mkrefany

Nella tabella che segue vengono indicati il formato esadecimale e il formato dell'assembly MSIL (Microsoft Intermediate Language) dell'istruzione, insieme a un breve riepilogo di riferimento:

Format

Formato dell'assembly

Descrizione

C6 < T >

mkrefany class

Inserisce un riferimento tipizzato di tipo class nello stack di valutazione.

Di seguito viene riportato il comportamento di transizione dello stack, in ordine sequenziale.

  1. Un puntatore a un dato viene inserito nello stack.

  2. Il puntatore viene inserito e convertito in un riferimento tipizzato di tipo class.

  3. Il riferimento tipizzato viene inserito nello stack.

L'istruzione mkrefany supporta il passaggio dinamico di riferimenti tipizzati. Il puntatore deve essere di tipo &* o native int e contiene l'indirizzo valido di una porzione di dati. Class è il token di classe che descrive il tipo dei dati cui il puntatore fa riferimento. Mkrefany inserisce un riferimento tipizzato nella pila, fornendo un descrittore opaco del puntatore e il tipo class.

L'unica operazione valida consentita su un riferimento tipizzato è costituita dal relativo passaggio a un metodo che richiede un riferimento tipizzato come parametro. Il chiamato può quindi utilizzare le istruzioni Refanytype e Refanyval per recuperare rispettivamente il tipo (classe) e l'indirizzo.

L'eccezione TypeLoadException viene generata se non è possibile individuare class. Tale situazione viene in genere rilevata quando le istruzioni MSIL (Microsoft Intermediate Language) vengono convertite in codice nativo, anziché in fase di esecuzione.

Nel seguente overload del metodo Emit è possibile utilizzare il codice operativo mkrefany:

  • ILGenerator.Emit(OpCode, Type)

.NET Framework

Supportato in: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

.NET per applicazioni Windows Store

Supportato in: Windows 8

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.
Il documento è risultato utile?
(1500 caratteri rimanenti)

Aggiunte alla community

AGGIUNGI
Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
© 2013 Microsoft. Tutti i diritti riservati.