OpCodes.Ldind_I Campo

Definizione

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

public: static initonly System::Reflection::Emit::OpCode Ldind_I;
public static readonly System.Reflection.Emit.OpCode Ldind_I;
 staticval mutable Ldind_I : System.Reflection.Emit.OpCode
Public Shared ReadOnly Ldind_I As OpCode 

Valore del campo

Commenti

La tabella seguente elenca il formato di assembly MSIL (Intermediate Language) esadecimale e Microsoft istruzione, insieme a un breve riepilogo di riferimento:

Formato Formato assembly Description
4D ldind.i Carica il native int valore in corrispondenza dell'indirizzo addr nello stack come .native int

Il comportamento transitorio dello stack, in ordine sequenziale, è:

  1. Viene eseguito il push di un indirizzo nello stack.

  2. L'indirizzo viene estratto dallo stack; il valore che si trova nell'indirizzo viene recuperato.

  3. Il valore recuperato viene inserito nello stack.

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

Tutte le ldind istruzioni sono collegamenti per un'istruzione Ldobj che specifica la classe valore predefinita corrispondente.

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

Il formato corretto Microsoft MSIL (Intermediate Language) garantisce che le istruzioni ldind vengano usate in modo coerente con il tipo del puntatore.

L'indirizzo inizialmente inserito nello stack deve essere allineato alle dimensioni naturali degli oggetti nel computer oppure può verificarsi un'istruzione NullReferenceExceptionUnaligned di prefisso per le misure preventive. I risultati di tutte le istruzioni MSIL che restituiscono indirizzi (ad esempio, Ldloca e Ldarga) sono allineati in modo sicuro. 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 eseguito in tutte le piattaforme.

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

L'overload del metodo seguente Emit può usare il ldind.i codice operativo:

Si applica a