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 в указанном объекте в стек. |
Переходный режим стека в последовательном порядке:
Ссылка на объект (или указатель) помещается в стек.
Ссылка на объект (или указатель) извлекается из стека; найден адрес указанного поля в объекте .
Адрес указанного поля помещается в стек.
Инструкция ldflda
передает адрес поля, расположенного в объекте, в стек. Объект должен находиться в стеке как ссылка на объект (тип O
), управляемый указатель (тип &
), неуправляемый указатель (тип native int
), временный указатель (тип *
) или экземпляр типа значения. Использование неуправляемого указателя не допускается в проверяемом коде. Поле объекта задается маркером метаданных, который должен ссылаться на элемент поля.
Значение, возвращаемое параметром ldflda
, является управляемым указателем (тип &
), если объект не передается в стек в качестве неуправляемого указателя. В этом случае обратный адрес также является неуправляемым указателем (тип native int
).
Инструкции ldflda
могут предшествовать либо префиксы и Volatile , Unaligned либо оба.
InvalidOperationException возникает, если объект находится не в домене приложения, из которого к нему осуществляется доступ. Не удается загрузить адрес поля, который находится не в домене приложения для доступа.
NullReferenceException возникает, если объект имеет значение NULL, а поле не является статическим.
MissingFieldException возникает, если указанное поле не найдено в метаданных. Обычно это проверяется при преобразовании инструкций MSIL в машинный код, а не во время выполнения.
Следующая Emit перегрузка ldflda
метода может использовать код операции: