Поделиться через


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) в стеке.

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

  1. Ссылка на объект массива array, помещается в стек.

  2. Допустимый индекс элемента в помещается в array стек.

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

  4. Значение, индекс и ссылка на массив выскочат из стека; значение помещается в элемент массива по заданному индексу.

Инструкция 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 метода может использовать код операции:

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