OpCodes.Stelem_Ref Campo
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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, é:
Uma referência de objeto a uma matriz,
array, é enviada por push para a pilha.Um índice válido para um elemento em
arrayé enviado por push para a pilha.Um valor é enviado por push para a pilha.
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: