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 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, é:
Uma referência de objeto a uma matriz
arrayé enviada por push para a pilha.Um índice válido para um elemento é
arrayenviado 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 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: