OpCodes.Ldobj-Feld
Kopiert das Werttypobjekt, auf das eine Adresse zeigt, an die oberste Position des Auswertungsstapels.
Namespace: System.Reflection.Emit
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public Shared ReadOnly Ldobj As OpCode
'Usage
Dim value As OpCode
value = OpCodes.Ldobj
public static readonly OpCode Ldobj
public:
static initonly OpCode Ldobj
public static final OpCode Ldobj
public static final var Ldobj : 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 |
---|---|---|
71 < T > |
ldobj class |
Kopiert eine Instanz vom Werttyp class in den Stapel. |
Im Stapel laufen die folgenden Aktionen in der angegebenen Reihenfolge ab:
Die Adresse eines Werttypobjekts wird auf dem Stapel abgelegt.
Die Adresse wird vom Stapel geholt, und die Instanz an der betreffenden Adresse wird gesucht.
Der Wert des Objekts, das an dieser Adresse gespeichert ist, wird auf dem Stapel abgelegt.
Mit der ldobj-Anweisung wird ein Werttyp als Parameter übergeben.
Die ldobj-Anweisung kopiert den Wert, auf den durch addrOfValObj (vom Typ &, * oder natural int) gezeigt wird, an die oberste Position des Stapels. Die Anzahl der kopierten Bytes hängt von der Größe der Klasse ab (durch den class-Parameter angegeben). Der class-Parameter ist ein Metadatentoken, das den Werttyp darstellt.
Die Funktionsweise der ldobj-Anweisung kann geändert werden, indem dieser die Volatile-Präfixanweisung oder die Unaligned-Präfixanweisung unmittelbar vorangestellt wird.
TypeLoadException wird ausgelöst, wenn die Klasse nicht gefunden werden kann. Dies wird normalerweise nicht zur Laufzeit erkannt, sondern wenn die MSIL-Anweisung (Microsoft Intermediate Language) in systemeigenen Code konvertiert wird.
Die folgende Überladung der Emit-Methode verwendet den ldobj-Opcode:
- ILGenerator.Emit(OpCode, Type)
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