OpCodes.Ldelema Campo

Definição

Carrega o endereço do elemento de matriz em um índice de matriz especificado na parte superior da pilha de avaliação como tipo & (ponteiro gerenciado).

public: static initonly System::Reflection::Emit::OpCode Ldelema;
public static readonly System.Reflection.Emit.OpCode Ldelema;
 staticval mutable Ldelema : System.Reflection.Emit.OpCode
Public Shared ReadOnly Ldelema 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
8F <T> Ldelema class Carrega o endereço do elemento de matriz na index parte superior da pilha de avaliação como tipo & (ponteiro gerenciado).

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

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

  2. Um valor index de índice é enviado por push para a pilha.

  3. index e array são gerados da pilha; o endereço armazenado na posição index é array pesquisado.

  4. O endereço é enviado por push para a pilha.

O ldelema é usado para recuperar o endereço de um objeto em um índice específico em uma matriz de objetos (do tipo class). A ldelema instrução carrega o endereço do valor no índice index (tipo native int) na matriz array unidimensional baseada em zero e o coloca na parte superior da pilha. Matrizes são objetos e, portanto, representadas por um valor do tipo O. O valor deve ser do tipo class passado com a instrução.

O valor ldelema retornado é um ponteiro gerenciado (tipo &).

Observe que valores inteiros de menos de 4 bytes são estendidos para int32 (não native int) quando são carregados na pilha de avaliação.

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

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

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

A sobrecarga do método Emit a seguir pode usar o ldelema opcode:

Aplica-se a