OpCodes.Ldind_I4 Поле

Определение

Выполняет косвенную загрузку значения с типом int32 в стек вычислений как int32.

public: static initonly System::Reflection::Emit::OpCode Ldind_I4;
public static readonly System.Reflection.Emit.OpCode Ldind_I4;
 staticval mutable Ldind_I4 : System.Reflection.Emit.OpCode
Public Shared ReadOnly Ldind_I4 As OpCode 

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

Комментарии

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

Формат Формат сборки Описание
4A ldind.i4 Загружает значение по int32 адресу addr в стек в виде int32.

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

  1. Адрес помещается в стек.

  2. Адрес извлекается из стека; извлекается значение, расположенное по адресу.

  3. Извлекаемое значение помещается в стек.

Инструкция ldind.i4 косвенно загружает int32 значение из указанного адреса (типа native int, &или *) в стек в виде int32.

Все инструкции ldind являются ярлыками для инструкции Ldobj , которая указывает соответствующий встроенный класс значений.

Обратите внимание, что целочисленные значения размером менее 4 байт расширяются до int32 (не native int) при загрузке в стек вычислений. Значения с плавающей запятой преобразуются в F тип при загрузке в стек вычислений.

Правильно сформированный msil-язык гарантирует, что инструкции ldind будут использоваться в соответствии с типом указателя.

Адрес, изначально помещаемый в стек, должен быть выровнен по естественному размеру объектов на компьютере или NullReferenceException может возникнуть (см Unaligned . инструкцию по префиксам для профилактических мер). Результаты всех инструкций MSIL, возвращающих адреса (например, Ldloca и Ldarga), безопасно выравниваются. Для типов данных, превышающих 1 байт, порядок байтов зависит от целевого ЦП. Код, зависящий от упорядочения байтов, может выполняться не на всех платформах.

NullReferenceException может вызываться при обнаружении недопустимого адреса.

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

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