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