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.Ldind_I

Carica indirettamente un valore di tipo native int come native int nello stack di valutazione.

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

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

4D

ldind.i

Carica il valore native int in corrispondenza dell'indirizzo addr nello stack come native int.

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

  1. Un indirizzo viene inserito nello stack.

  2. L'indirizzo viene estratto dallo stack; il valore individuato in corrispondenza dell'indirizzo viene recuperato.

  3. Il valore recuperato viene inserito nello stack.

L'istruzione ldind.i carica indirettamente come native int un valore native int dall'indirizzo (di tipo native int, & o *) specificato allo stack.

Tutte le istruzioni ldind sono collegamenti a un'istruzione Ldobj che specifica la classe di valori incorporata corrispondente.

Si noti che i valori interi minori di 4 byte sono estesi a int32, non a native int, quando vengono caricati nello stack di valutazione. I valori in virgola mobile vengono convertiti nel tipo F, quando vengono caricati nello stack di valutazione.

Un formato MSIL (Microsoft Intermediate Language) corretto garantisce che le istruzioni ldind siano utilizzate in modo coerente con il tipo di puntatore.

È necessario che l'indirizzo inizialmente inserito nello stack sia allineato rispetto alla dimensione standard degli oggetti sul computer; in caso contrario, è possibile che si verifichi un'eccezione NullReferenceException. Vedere l'istruzione di prefisso Unaligned per evitare tale problema. I risultati di tutte le istruzioni MSIL che restituiscono indirizzi, ad esempio Ldloca e Ldarga, sono allineati in modo indipendente. Per i tipi di dati maggiori di 1 byte, l'ordinamento dei byte dipende dalla CPU di destinazione. Il codice che dipende dall'ordinamento dei byte potrebbe non essere eseguibile su tutte le piattaforme.

L'eccezione NullReferenceException può essere generata se viene rilevato un indirizzo non valido.

Nel seguente overload di metodi Emit è possibile utilizzare il codice operativo ldind.i:

  • ILGenerator.Emit(OpCode)

.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
© 2013 Microsoft. Tutti i diritti riservati.