OpCodes.Stelem_Ref Campo

Definição

Substitui o elemento da matriz de um determinado índice com o valor de referência de objeto (tipo O) na pilha de avaliaçã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 

Valor do campo

Comentários

A tabela a seguir lista o formato de assembly hexadecimal e MSIL (Microsoft Intermediate Language) da instrução, juntamente com um breve resumo de referência:

Formatar Formato de assembly Descrição
A2 stelem.ref Substitui um elemento de matriz no índice fornecido pelo ref valor (tipo O) na pilha.

O comportamento de transição da pilha, em ordem sequencial, é:

  1. Uma referência de objeto a uma matriz, array, é enviada por push para a pilha.

  2. Um índice válido para um elemento em array é enviado por push para a pilha.

  3. Um valor é enviado por push para a pilha.

  4. O valor, o índice e a referência da matriz são exibidos da pilha; o valor é colocado no elemento de matriz no índice fornecido.

A stelem.ref instrução substitui o valor do elemento no índice fornecido na matriz array unidimensional pelo ref valor (tipo O) enviado para a pilha.

Matrizes são objetos e, portanto, representados por um valor do tipo O. O índice é do tipo native int.

Observe que stelem.ref converte implicitamente o valor fornecido para o tipo de elemento de antes de array atribuir o valor ao elemento de matriz. Essa conversão pode falhar, mesmo para o código verificado. Portanto, a stelem.ref instrução pode gerar InvalidCastException. Para matrizes unidimensionais que não são baseadas em zero e para matrizes multidimensionais, a Array classe fornece um SetValue método .

NullReferenceException será gerado se array for uma referência nula.

IndexOutOfRangeException será gerado se index for negativo ou maior que o limite de array.

ArrayTypeMismatchException será gerado se array não armazenar elementos do tipo necessário.

A sobrecarga do método Emit a seguir pode usar o stelem.ref opcode:

Aplica-se a