OpCodes.Ldfld Feld

Definition

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

public: static initonly System::Reflection::Emit::OpCode Ldfld;
public static readonly System.Reflection.Emit.OpCode Ldfld;
 staticval mutable Ldfld : System.Reflection.Emit.OpCode
Public Shared ReadOnly Ldfld 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
7B <T> ldfld field Pusht den Wert eines Felds in einem angegebenen Objekt auf den Stapel.

Das Stapelübergangsverhalten in sequenzieller Reihenfolge lautet:

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

  2. Der Objektverweis (oder -zeiger) wird aus dem Stapel geknallt. Der Wert des angegebenen Felds im Objekt wird gefunden.

  3. Der im Feld gespeicherte Wert wird auf den Stapel gepusht.

Die ldfld Anweisung pusht den Wert eines Felds in einem Objekt auf den Stapel. Das Objekt muss sich auf dem Stapel als Objektverweis (Typ O), als verwalteter Zeiger (Typ &), als nicht verwalteter Zeiger (Typ native int), als vorübergehender Zeiger (Typ *) oder als 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 ein Feldmember verweisen muss. Der Rückgabetyp ist identisch mit dem, der dem Feld zugeordnet ist. Das Feld kann entweder ein instance-Feld (in diesem Fall darf das Objekt kein NULL-Verweis sein) oder ein statisches Feld sein.

Der ldfld Anweisung können entweder oder beide Präfixe Unaligned und Volatile vorangestellt 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 ldfld opcode verwenden:

Gilt für: