Freigeben über


OpCodes.Ldind_Ref Feld

Definition

Lädt einen Objektverweis indirekt als Typ O (Objektverweis) in den Auswertungsstapel.

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

Feldwert

Hinweise

In der folgenden Tabelle sind das Hexadezimal- und MSIL-Assemblyformat (Microsoft Intermediate Language) der Anweisung sowie eine kurze Referenzzusammenfassung aufgeführt:

Format Assemblyformat BESCHREIBUNG
50 ldind.ref Lädt den Objektverweis an Adresse addr als Typ auf den Stapel. O

Das Stapelübergangsverhalten in sequenzieller Reihenfolge lautet:

  1. Eine Adresse wird auf den Stapel gepusht.

  2. Die Adresse wird aus dem Stapel geknallt. der Objektverweis, der sich an der Adresse befindet, wird abgerufen.

  3. Der abgerufene Verweis wird auf den Stapel gepusht.

Die ldind.ref Anweisung lädt indirekt das Objekt, das auf die angegebene Adresse (vom Typ native int, &oder *) verweist, in den Stapel als Typ O.

ldind Alle Anweisungen sind Tastenkombinationen für eine Ldobj Anweisung, die die entsprechende integrierte Wertklasse angibt.

Beachten Sie, dass ganzzahlige Werte von weniger als 4 Bytes auf int32 (nicht native int) erweitert werden, wenn sie in den Auswertungsstapel geladen werden. Gleitkommawerte werden beim F Laden in den Auswertungsstapel in den Typ konvertiert.

Die korrekt formatierte Microsoft Intermediate Language (MSIL) stellt sicher, dass die ldind Anweisungen in einer Weise verwendet werden, die dem Typ des Zeigers entspricht.

Die ursprünglich auf den Stapel gepushte Adresse muss an der natürlichen Größe von Objekten auf dem Computer ausgerichtet werden, sonst kann eine NullReferenceException auftreten (siehe Präfixanweisung Unaligned für vorbeugende Maßnahmen). Die Ergebnisse aller MSIL-Anweisungen, die Adressen zurückgeben (z. B. Ldloca und Ldarga), sind sicher ausgerichtet. Bei Datentypen, die größer als 1 Byte sind, hängt die Bytereihenfolge von der Ziel-CPU ab. Code, der von der Bytereihenfolge abhängt, wird möglicherweise nicht auf allen Plattformen ausgeführt.

NullReferenceException kann ausgelöst werden, wenn eine ungültige Adresse erkannt wird.

Die folgende Emit Methodenüberladung kann den ldind.ref opcode verwenden:

Gilt für: