OpCodes.Ldfld Feld
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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:
Ein Objektverweis (oder Zeiger) wird auf den Stapel gepusht.
Der Objektverweis (oder -zeiger) wird aus dem Stapel geknallt. Der Wert des angegebenen Felds im Objekt wird gefunden.
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: