Freigeben über


OpCodes.Ldind_Ref-Feld

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

Namespace: System.Reflection.Emit
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public Shared ReadOnly Ldind_Ref As OpCode
'Usage
Dim value As OpCode

value = OpCodes.Ldind_Ref
public static readonly OpCode Ldind_Ref
public:
static initonly OpCode Ldind_Ref
public static final OpCode Ldind_Ref
public static final var Ldind_Ref : OpCode

Hinweise

In der folgenden Tabelle werden das hexadezimale und das Assemblyformat der MSIL (Microsoft Intermediate Language) jeweils mit einer Kurzreferenz aufgeführt:

Format

Assemblyformat

Beschreibung

50

ldind.ref

Lädt den Objektverweis an Adresse addr als Typ O in den Stapel.

Im Stapel laufen die folgenden Aktionen in der angegebenen Reihenfolge ab:

  1. Eine Adresse wird auf dem Stapel abgelegt.

  2. Die Adresse wird vom Stapel geholt, und der an der Adresse befindliche Objektverweis wird abgerufen.

  3. Der abgerufene Verweis wird auf dem Stapel abgelegt.

Die ldind.ref-Anweisung lädt indirekt den Objektverweis an der angegebenen Adresse (vom Typ natural int, & oder *) als Typ O in den Stapel.

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

Beachten Sie, dass Ganzzahlwerte mit weniger als 4 Bytes beim Laden in den Auswertungsstapel auf int32 (nicht natural int) erweitert werden. Gleitkommawerte werden beim Laden in den Auswertungsstapel in den F-Typ konvertiert.

Durch wohlgeformten MSIL (Microsoft Intermediate Language)-Code wird sichergestellt, dass ldind-Anweisungen dem Zeigertyp entsprechend verwendet werden.

Die ursprünglich auf dem Stapel abgelegte Adresse muss an die systemeigene Größe von Objekten auf dem Computer angepasst sein, andernfalls kann eine NullReferenceException auftreten. (Vorbeugende Maßnahmen werden in der Anweisung für das Unaligned-Präfix beschrieben.) Die Ergebnisse sämtlicher MSIL-Anweisungen, die Adressen zurückgeben (z. B. Ldloca und Ldarga) werden sicher angepasst. Bei Datentypen, die größer als 1 Byte sind, hängt die Anordnung der Bytes von der Ziel-CPU ab. Code, der von der Anordnung der Bytes abhängig ist, kann u. U. nicht auf allen Plattformen ausgeführt werden.

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

Die folgende Überladung der Emit-Methode verwendet den ldind.ref-Opcode:

  • ILGenerator.Emit(OpCode)

Plattformen

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

OpCodes-Klasse
OpCodes-Member
System.Reflection.Emit-Namespace