OpCodes.Stelem_Ref Поле
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Заменяет элемент массива в заданном индексе значением ссылок объекта (тип O) в стеке вычислений.
public: static initonly System::Reflection::Emit::OpCode Stelem_Ref;
public static readonly System.Reflection.Emit.OpCode Stelem_Ref;
staticval mutable Stelem_Ref : System.Reflection.Emit.OpCode
Public Shared ReadOnly Stelem_Ref As OpCode
Значение поля
Комментарии
В следующей таблице перечислены шестнадцатеричные и шестнадцатеричные и Microsoft формат сборки промежуточного языка (MSIL) инструкции, а также краткая сводка по ссылке:
| Формат | Формат сборки | Description |
|---|---|---|
| A2 | stelem.ref | Заменяет элемент массива в предоставленном индексе значением ref (типом O) в стеке. |
Переходное поведение стека в последовательном порядке:
Ссылка на объект массива
arrayпередается в стек.Допустимый индекс элемента в
arrayстеке передается.Значение передается в стек.
Значение, индекс и ссылка на массив отображаются из стека; значение помещается в элемент массива по указанному индексу.
Инструкция stelem.ref заменяет значение элемента по указанному индексу в одномерном массиве arrayref значением (типом O), отправленным в стек.
Массивы представляют собой объекты и, следовательно, представленные значением типа O. Индекс имеет тип native int.
Обратите внимание, что stelem.ref неявно приведение заданного array значения к типу элемента перед назначением значения элементу массива. Этот приведение может завершиться ошибкой даже для проверенного кода.
stelem.ref Таким образом, инструкция может вызвать.InvalidCastException Для одномерных массивов, которые не основаны на нулях и для многомерных массивов, Array класс предоставляет SetValue метод.
NullReferenceException вызывается, если array является пустой ссылкой.
IndexOutOfRangeException вызывается, если index отрицательное значение или больше границы array.
ArrayTypeMismatchException создается, если array элементы требуемого типа не содержатся.
Следующая Emit перегрузка метода может использовать stelem.ref код opcode: