OpCodes.Ldind_Ref Поле
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Выполняет косвенную загрузку в стек вычислений ссылки на объект как O
(ссылка на объект).
public: static initonly System::Reflection::Emit::OpCode Ldind_Ref;
public static readonly System.Reflection.Emit.OpCode Ldind_Ref;
staticval mutable Ldind_Ref : System.Reflection.Emit.OpCode
Public Shared ReadOnly Ldind_Ref As OpCode
Значение поля
Комментарии
В следующей таблице приведен шестнадцатеричный формат инструкции и формат сборки msil, а также краткий обзор:
Формат | Формат сборки | Описание |
---|---|---|
50 | ldind.ref | Загружает ссылку на объект по адресу addr в стек в виде типа O |
Переходный режим стека в последовательном порядке:
Адрес помещается в стек.
Адрес извлекается из стека; Ссылка на объект, расположенная по адресу, извлекается.
Извлекаемая ссылка помещается в стек.
Инструкция ldind.ref
косвенно загружает ссылку на объект с указанным адресом (типа native int
, &
или *) в стек как тип O
.
Все инструкции ldind
являются ярлыками для инструкции Ldobj , которая указывает соответствующий встроенный класс значений.
Обратите внимание, что целочисленные значения размером менее 4 байт расширяются до int32
(не native int
) при загрузке в стек вычислений. Значения с плавающей запятой преобразуются в F
тип при загрузке в стек вычислений.
Правильно сформированный msil-язык гарантирует, что инструкции ldind
будут использоваться в соответствии с типом указателя.
Адрес, изначально помещаемый в стек, должен быть выровнен по естественному размеру объектов на компьютере или NullReferenceException может возникнуть (см Unaligned . инструкцию по префиксам для профилактических мер). Результаты всех инструкций MSIL, возвращающих адреса (например, Ldloca и Ldarga), безопасно выравниваются. Для типов данных, превышающих 1 байт, порядок байтов зависит от целевого ЦП. Код, зависящий от упорядочения байтов, может выполняться не на всех платформах.
NullReferenceException может вызываться при обнаружении недопустимого адреса.
Следующая Emit перегрузка ldind.ref
метода может использовать код операции: