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

In der folgenden Tabelle werden das hexadezimale und das MSIL-AssemblyFormat (Microsoft Intermediate Language) zusammen mit einer kurzen Verweis Zusammenfassung aufgelistet: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 Überträgt die Adresse von field in einem angegebenen-Objekt auf den Stapel.Pushes the address of field in a specified object onto the stack.

Das Stapel Übergangs Verhalten ist in sequenzieller Reihenfolge:The stack transitional behavior, in sequential order, is:

  1. Ein Objekt Verweis (oder Zeiger) wird auf den Stapel verschoben.An object reference (or pointer) is pushed onto the stack.

  2. Der Objekt Verweis (oder Zeiger) wird aus dem Stapel entfernt. die Adresse des angegebenen Felds im-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 den Stapel verschoben.The address of the specified field is pushed onto the stack.

Die ldflda -Anweisung legt die Adresse eines Felds, das sich in einem-Objekt befindet, auf den Stapel.The ldflda instruction pushes the address of a field located in an object onto the stack. Das Objekt muss sich auf dem Stapel als Objekt Verweis ( OTyp), ein verwalteter Zeiger (Typ &), ein nicht verwalteter Zeiger (Typ native int), ein vorübergehender Zeiger *(Typ) oder eine Instanz eines Werttyps befinden.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 in überprüfbarem Code nicht zulässig.The use of an unmanaged pointer is not permitted in verifiable code. Das-Feld des Objekts wird durch ein Metadatentoken angegeben, das auf einen Feldmember verweisen muss.The object's field is specified by a metadata token that must refer to a field member.

Der von ldflda zurückgegebene Wert ist ein verwalteter Zeiger &(Typ), es sei denn, das Objekt wird als nicht verwalteter Zeiger auf den Stapel verschoben. in diesem Fall ist die Rückgabeadresse auch native intein nicht verwalteter Zeiger (Typ).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).

Der ldflda Unaligned -Anweisung können entweder oder beide Präfixe und Volatile vorangestellt werden.The ldflda instruction can be preceded by either or both of the Unaligned and Volatile prefixes.

InvalidOperationExceptionwird ausgelöst, wenn sich das Objekt nicht innerhalb der Anwendungsdomäne befindet, von der aus auf das Objekt 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 in der Zugriffs Anwendungsdomäne ist, kann nicht geladen werden.The address of a field that is not inside the accessing application domain cannot be loaded.

NullReferenceExceptionwird 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.

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

In der Emit folgenden Methoden Überladung kann ldflda der Opcode verwendet werden:The following Emit method overload can use the ldflda opcode:

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

Gilt für: