OpCodes.Ldflda Pole

Definicja

Znajduje adres pola w obiekcie, którego odwołanie znajduje się obecnie na stosie szacowania.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 

Wartość pola

Uwagi

W poniższej tabeli przedstawiono format zestawu języka pośredniego w formacie szesnastkowym i Microsoft (MSIL) instrukcji wraz z krótkim podsumowaniem odwołania:The following table lists the instruction's hexadecimal and Microsoft Intermediate Language (MSIL) assembly format, along with a brief reference summary:

FormatFormat Format zestawuAssembly Format OpisDescription
7C < T >7C < T > ldflda fieldldflda field Wypchnięcie adresu field w określonym obiekcie na stosie.Pushes the address of field in a specified object onto the stack.

Zachowanie przejściowe stosu, w kolejności sekwencyjnej, to:The stack transitional behavior, in sequential order, is:

  1. Odwołanie do obiektu (lub wskaźnik) jest wypychane na stosie.An object reference (or pointer) is pushed onto the stack.

  2. Odwołanie do obiektu (lub wskaźnik) jest zdjęte ze stosu; znaleziono adres określonego pola w obiekcie.The object reference (or pointer) is popped from the stack; the address of the specified field in the object is found.

  3. Adres określonego pola jest wypychany na stosie.The address of the specified field is pushed onto the stack.

Instrukcja ldflda wypycha adres pola znajdującego się w obiekcie na stosie.The ldflda instruction pushes the address of a field located in an object onto the stack. Obiekt musi znajdować się na stosie jako odwołanie do obiektu (typ O), zarządzany wskaźnik (typ &), niezarządzany wskaźnik (typ native int), przejściowy wskaźnik (typ *) lub wystąpienie typu wartości.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. Użycie niezarządzanego wskaźnika jest niedozwolone w kodzie możliwym do zweryfikowania.The use of an unmanaged pointer is not permitted in verifiable code. Pole obiektu jest określone przez token metadanych, który musi odwoływać się do elementu członkowskiego pola.The object's field is specified by a metadata token that must refer to a field member.

Wartość zwracana przez ldflda jest zarządzanym wskaźnikiem (typu &), chyba że obiekt jest wypychany do stosu jako niezarządzany wskaźnik, w tym przypadku adres zwrotny jest również wskaźnikiem niezarządzanym (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).

Instrukcje ldflda mogą być poprzedzone jedną lub obu Unaligned i Volatile prefiksami.The ldflda instruction can be preceded by either or both of the Unaligned and Volatile prefixes.

InvalidOperationException jest generowany, jeśli obiekt nie znajduje się w domenie aplikacji, z której jest uzyskiwany dostęp.InvalidOperationException is thrown if the object is not within the application domain from which it is being accessed. Nie można załadować adresu pola, które nie znajduje się w domenie aplikacji do uzyskiwania dostępu.The address of a field that is not inside the accessing application domain cannot be loaded.

NullReferenceException jest generowany, jeśli obiekt ma wartość null, a pole nie jest statyczne.NullReferenceException is thrown if the object is null and the field is not static.

MissingFieldException jest generowany, jeśli nie znaleziono określonego pola w metadanych.MissingFieldException is thrown if the specified field is not found in the metadata. Jest to zazwyczaj zaznaczone, gdy instrukcje języka pośredniego (MSIL) firmy Microsoft są konwertowane na kod natywny, a nie w czasie wykonywania.This is typically checked when Microsoft Intermediate Language (MSIL) instructions are converted to native code, not at run time.

Następujące Emit Przeciążenie metody może używać ldflda opcode:The following Emit method overload can use the ldflda opcode:

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

Dotyczy