OpCodes.Ldflda OpCodes.Ldflda OpCodes.Ldflda OpCodes.Ldflda Field

Definition

Sucht die Adresse eines Felds in dem Objekt, für das sich derzeit ein Verweis auf dem Auswertungsstapel befindet.Finds the address of a field in the object whose reference is currently on the evaluation stack.

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

Die folgende Tabelle enthält die hexadezimale und das Assemblyformat von Microsoft Intermediate Language (MSIL) sowie eine kurze Referenz-Zusammenfassung:The following table lists the instruction's hexadecimal and Microsoft Intermediate Language (MSIL) assembly format, along with a brief reference summary:

FormatFormat AssemblyformatAssembly Format BeschreibungDescription
7C < T >7C < T > ldflda fieldldflda field Legt die Adresse eines field in ein angegebenes Objekt im Stapel.Pushes the address of field in a specified object onto the stack.

Im Stapel-laufen, wird in der angegebenen Reihenfolge:The stack transitional behavior, in sequential order, is:

  1. Ein Objektverweis (oder Zeiger) wird auf dem Stapel abgelegt.An object reference (or pointer) is pushed onto the stack.

  2. Der Objektverweis (oder Zeiger) wird vom Stapel geholt. die Adresse des angegebenen Felds in dem Objekt wurde gefunden.The object reference (or pointer) is popped from the stack; the address of the specified field in the object is found.

  3. Die Adresse des angegebenen Felds wird auf dem Stapel abgelegt.The address of the specified field is pushed onto the stack.

Die ldflda Anweisung legt die Adresse eines Felds in einem Objekt im Stapel befindet.The ldflda instruction pushes the address of a field located in an object onto the stack. Das Objekt muss auf dem Stapel als einen Objektverweis (Typ O), einen verwalteten Zeiger (Typ &), einen nicht verwalteten Zeiger (Typ native int), einen flüchtigen Zeiger (Typ *), oder eine Instanz eines Werttyps.The object must be on the stack as an object reference (type O), a managed pointer (type &), an unmanaged pointer (type native int), a transient pointer (type *), or an instance of a value type. Die Verwendung eines nicht verwalteten Zeigers ist nicht in überprüfbarem Code zulässig.The use of an unmanaged pointer is not permitted in verifiable code. Das Feld des Objekts wird durch ein Metadatentoken angegeben, die auf einen Feldmember verweisen muss.The object's field is specified by a metadata token that must refer to a field member.

Der Rückgabewert von ldflda ist ein verwalteter Zeiger (Typ &), wenn das Objekt wird als ein nicht verwalteter Zeiger in den Stapel abgelegt, in diesem Fall die Absenderadresse ist auch ein nicht verwalteter Zeiger (Typ native int).The value returned by ldflda is a managed pointer (type &) unless the object is pushed onto the stack as an unmanaged pointer, in which case the return address is also an unmanaged pointer (type native int).

Die ldflda Anweisung kann vorangestellt werden eine oder beide der Unaligned und Volatile Präfixe.The ldflda instruction can be preceded by either or both of the Unaligned and Volatile prefixes.

InvalidOperationException wird ausgelöst, wenn das Objekt nicht innerhalb der Anwendungsdomäne ist von dem sie zugegriffen wird.InvalidOperationException is thrown if the object is not within the application domain from which it is being accessed. Die Adresse eines Felds, das nicht innerhalb der Zugriff auf die Anwendungsdomäne ist, kann nicht geladen werden.The address of a field that is not inside the accessing application domain cannot be loaded.

NullReferenceException wird ausgelöst, wenn das Objekt null ist, und das Feld nicht statisch ist.NullReferenceException is thrown if the object is null and the field is not static.

MissingFieldException wird ausgelöst, wenn das angegebene Feld in den Metadaten nicht gefunden wird.MissingFieldException is thrown if the specified field is not found in the metadata. Dies ist in der Regel aktiviert, wenn Microsoft Intermediate Language (MSIL)-Anweisungen nicht zur Laufzeit in nativen Code konvertiert werden.This is typically checked when Microsoft Intermediate Language (MSIL) instructions are converted to native code, not at run time.

Die folgenden Emit Überladung der Methode verwendet die ldflda Opcode:The following Emit method overload can use the ldflda opcode:

  • ILGenerator.Emit(OpCode, FieldInfo)ILGenerator.Emit(OpCode, FieldInfo)

Gilt für: