Freigeben über


OpCodes.Ldobj Feld

Definition

Kopiert das Werttypobjekt, auf das eine Adresse zeigt, an die oberste Position des Auswertungsstapels.

public: static initonly System::Reflection::Emit::OpCode Ldobj;
public static readonly System.Reflection.Emit.OpCode Ldobj;
 staticval mutable Ldobj : System.Reflection.Emit.OpCode
Public Shared ReadOnly Ldobj 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
71 <T> ldobj class Kopieren Sie instance des Werttyps class in den Stapel.

Das Übergangsverhalten des Stapels in sequenzieller Reihenfolge lautet:

  1. Die Adresse eines Werttypobjekts wird in den Stapel gepusht.

  2. Die Adresse wird aus dem Stapel geknallt, und die instance an dieser bestimmten Adresse wird gesucht.

  3. Der Wert des objekts, das an dieser Adresse gespeichert ist, wird in den Stapel gepusht.

Die ldobj -Anweisung wird verwendet, um einen Werttyp als Parameter zu übergeben.

Die ldobj -Anweisung kopiert den Wert, auf den ( addrOfValObj vom Typ &, *oder native int) verweist, an den Anfang des Stapels. Die Anzahl der kopierten Bytes hängt von der Größe der Klasse ab (wie durch den class -Parameter angegeben). Der class Parameter ist ein Metadatentoken, das den Werttyp darstellt.

Der Vorgang der ldobj -Anweisung kann durch eine unmittelbar vorangehende Volatile - oder Unaligned Präfixanweisung geändert werden.

TypeLoadException wird ausgelöst, wenn die Klasse nicht gefunden werden kann. Dies wird in der Regel erkannt, wenn die MSIL-Anweisung (Microsoft Intermediate Language) nicht zur Laufzeit, sondern in nativen Code konvertiert wird.

Die folgende Emit Methodenüberladung kann den ldobj Opcode verwenden:

Gilt für: