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: