OpCodes.Ldfld Поле

Определение

Находит значение поля в объекте, ссылка на который находится в стеке вычислений.

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 

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

Комментарии

В следующей таблице перечислены шестнадцатеричные и шестнадцатеричные и Microsoft формат сборки промежуточного языка (MSIL) инструкции, а также краткая сводка по ссылке:

Формат Формат сборки Description
7B <T> ldfld field Отправляет значение поля в указанном объекте в стек.

Переходное поведение стека в последовательном порядке:

  1. Ссылка на объект (или указатель) передается в стек.

  2. Ссылка на объект (или указатель) подается из стека; Значение указанного поля в объекте найдено.

  3. Значение, хранящееся в поле, передается в стек.

Инструкция ldfld отправляет значение поля, расположенного в объекте, в стек. Объект должен находиться в стеке как ссылка на объект (тип), управляемый указатель (типO&), неуправляемый указатель (типnative int), временный указатель (тип*) или экземпляр типа значения. Использование неуправляемого указателя запрещено в проверяемом коде. Поле объекта указывается маркером метаданных, который должен ссылаться на элемент поля. Возвращаемый тип совпадает с типом, связанным с полем. Поле может быть полем экземпляра (в этом случае объект не должен быть пустой ссылкой) или статическим полем.

Перед ldfld инструкцией может предшествовать любой Unaligned из префиксов и Volatile префиксов.

NullReferenceException вызывается, если объект имеет значение NULL, а поле не является статическим.

MissingFieldException вызывается, если указанное поле не найдено в метаданных. Обычно это проверяется, когда инструкции Microsoft промежуточного языка (MSIL) преобразуются в машинный код, а не во время выполнения.

Следующая Emit перегрузка метода может использовать ldfld код opcode:

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