Поделиться через


OpCodes.Ldflda Поле

Определение

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

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 

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

Комментарии

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

Формат Формат сборки Описание
7C <T> ldflda field Отправляет адрес field в указанном объекте в стек.

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

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

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

  3. Адрес указанного поля помещается в стек.

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

Значение, возвращаемое параметром ldflda , является управляемым указателем (тип &), если объект не передается в стек в качестве неуправляемого указателя. В этом случае обратный адрес также является неуправляемым указателем (тип native int).

Инструкции ldflda могут предшествовать либо префиксы и Volatile , Unaligned либо оба.

InvalidOperationException возникает, если объект находится не в домене приложения, из которого к нему осуществляется доступ. Не удается загрузить адрес поля, который находится не в домене приложения для доступа.

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

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

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

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