OpCodes.Ldflda Поле

Определение

Ищет адрес поля в объекте, ссылка на который находится в стеке вычислений.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 

Значение поля

OpCode

Комментарии

В следующей таблице приводится список шестнадцатеричных и форматных сборок инструкций языка MSIL, а также краткая сводка.The following table lists the instruction's hexadecimal and Microsoft Intermediate Language (MSIL) assembly format, along with a brief reference summary:

ФорматFormat Формат сборкиAssembly Format ОписаниеDescription
7C < T >7C < T > лдфлда fieldldflda field Помещает адрес field в указанном объекте в стек.Pushes the address of field in a specified object onto the stack.

Переход в стек в последовательном порядке имеет следующие особенности:The stack transitional behavior, in sequential order, is:

  1. Ссылка на объект (или указатель) помещается в стек.An object reference (or pointer) is pushed onto the stack.

  2. Ссылка на объект (или указатель) извлекается из стека; найден адрес указанного поля в объекте.The object reference (or pointer) is popped from the stack; the address of the specified field in the object is found.

  3. Адрес указанного поля помещается в стек.The address of the specified field is pushed onto the stack.

ldfldaИнструкция помещает адрес поля, расположенного в объекте, в стек.The ldflda instruction pushes the address of a field located in an object onto the stack. Объект должен находиться в стеке как ссылка на объект (тип O ), управляемый указатель (тип & ), неуправляемый указатель (тип) native int , временный указатель (тип * ) или экземпляр типа значения.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. Использование неуправляемого указателя в проверяемом коде не допускается.The use of an unmanaged pointer is not permitted in verifiable code. Поле объекта задается маркером метаданных, который должен ссылаться на элемент поля.The object's field is specified by a metadata token that must refer to a field member.

Значение, возвращаемое, ldflda является управляемым указателем (типом & ), если объект не помещается в стек как неуправляемый указатель, в этом случае обратный адрес также является неуправляемым указателем (тип 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).

ldfldaИнструкции может предшествовать один или оба Unaligned Volatile префикса и.The ldflda instruction can be preceded by either or both of the Unaligned and Volatile prefixes.

InvalidOperationException создается, если объект не находится в домене приложения, из которого осуществляется доступ.InvalidOperationException is thrown if the object is not within the application domain from which it is being accessed. Не удается загрузить адрес поля, не находящегося внутри доступного домена приложения.The address of a field that is not inside the accessing application domain cannot be loaded.

NullReferenceException Если объект имеет значение NULL и поле не является статическим, создается исключение.NullReferenceException is thrown if the object is null and the field is not static.

MissingFieldException Если указанное поле не найдено в метаданных, создается исключение.MissingFieldException is thrown if the specified field is not found in the metadata. Обычно это проверяется при преобразовании инструкций промежуточного языка MSIL в машинный код, а не во время выполнения.This is typically checked when Microsoft Intermediate Language (MSIL) instructions are converted to native code, not at run time.

Следующая Emit перегрузка метода может использовать ldflda код операции:The following Emit method overload can use the ldflda opcode:

Применяется к