OpCodes.Stelem_Ref Поле
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Заменяет элемент массива с заданным индексом на значение object 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
Значение поля
Комментарии
В следующей таблице приведен шестнадцатеричный формат инструкции и формат сборки MSIL, а также краткая справочная сводка:
| Формат | Формат сборки | Описание |
|---|---|---|
| A2 | stelem.ref | Заменяет элемент массива по указанному индексу значением ref (типом O) в стеке. |
Переходный режим стека в последовательном порядке:
Ссылка на объект массива
array, помещается в стек.Допустимый индекс элемента в помещается в
arrayстек.Значение помещается в стек.
Значение, индекс и ссылка на массив выскочат из стека; значение помещается в элемент массива по заданному индексу.
Инструкция stelem.ref заменяет значение элемента по указанному индексу в одномерном массиве array значением ref (тип O), отправленным в стек.
Массивы являются объектами и, следовательно, представлены значением типа O. Индекс имеет тип native int.
Обратите внимание, что stelem.ref неявно приводит предоставленное значение к типу array элемента перед назначением значения элементу массива. Это приведение может завершиться ошибкой даже для проверенного кода. Таким образом, stelem.ref инструкция может вызвать исключение InvalidCastException. Для одномерных массивов, не основанных на нулях, Array и для многомерных массивов класс предоставляет SetValue метод .
NullReferenceException возникает, если array является пустой ссылкой.
IndexOutOfRangeException возникает, если index значение отрицательное или больше границы array.
ArrayTypeMismatchException возникает, если array не содержит элементы требуемого типа.
Emit Следующая перегрузка stelem.ref метода может использовать код операции: