OpCodes.Stelem_Ref Campo

Definição

Substitui o elemento de matriz em um determinado índice pelo valor ref do 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 Microsoft linguagem intermediária (MSIL) da instrução, juntamente com um breve resumo de referência:

Formato Formato de assembly Description
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 é 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 extraídos 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, representadas por um valor do tipo O. O índice é tipo native int.

Observe que stelem.ref converte implicitamente o valor fornecido para o tipo de elemento 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 é gerado se index for negativo ou maior que o limite de array.

ArrayTypeMismatchException é gerado se array não contém elementos do tipo necessário.

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

Aplica-se a