Freigeben über


OpCodes.Ldflda Feld

Definition

Sucht die Adresse eines Felds in dem Objekt, für das sich derzeit ein Verweis auf dem Auswertungsstapel befindet.

public: static initonly System::Reflection::Emit::OpCode Ldflda;
public static readonly System.Reflection.Emit.OpCode Ldflda;
 staticval mutable Ldflda : System.Reflection.Emit.OpCode
Public Shared ReadOnly Ldflda 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
7C <T> ldflda field Pusht die Adresse von field in einem angegebenen Objekt auf den Stapel.

Das Übergangsverhalten des Stapels in sequenzieller Reihenfolge lautet:

  1. Ein Objektverweis (oder Zeiger) wird auf den Stapel gepusht.

  2. Der Objektverweis (oder Zeiger) wird aus dem Stapel geploppt. die Adresse des angegebenen Felds im Objekt gefunden wird.

  3. Die Adresse des angegebenen Felds wird auf den Stapel gepusht.

Die ldflda Anweisung pusht die Adresse eines Felds in einem -Objekt auf den Stapel. Das Objekt muss sich im Stapel als Objektverweis (TypO), verwalteter Zeiger (Typ&), nicht verwalteter Zeiger (Typnative int), vorübergehender Zeiger (Typ *) oder instance eines Werttyps befinden. Die Verwendung eines nicht verwalteten Zeigers ist in überprüfbarem Code nicht zulässig. Das Feld des Objekts wird durch ein Metadatentoken angegeben, das auf einen Feldmember verweisen muss.

Der von ldflda zurückgegebene Wert ist ein verwalteter Zeiger (Typ &), es sei denn, das Objekt wird als nicht verwalteter Zeiger auf den Stapel gepusht. In diesem Fall ist die Rückgabeadresse auch ein nicht verwalteter Zeiger (Typ native int).

Der ldflda Anweisung können entweder oder beide Präfixe Unaligned und Volatile vorangestellt werden.

InvalidOperationException wird ausgelöst, wenn sich das Objekt nicht in der Anwendungsdomäne befindet, von der aus darauf zugegriffen wird. Die Adresse eines Felds, das sich nicht in der zugreifenden Anwendungsdomäne befindet, kann nicht geladen werden.

NullReferenceException wird ausgelöst, wenn das Objekt NULL ist und das Feld nicht statisch ist.

MissingFieldException wird ausgelöst, wenn das angegebene Feld nicht in den Metadaten gefunden wird. Dies wird in der Regel überprüft, wenn MSIL-Anweisungen (Microsoft Intermediate Language) nicht zur Laufzeit in nativen Code konvertiert werden.

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

Gilt für: