OpCodes.Ldflda Campo

Definição

Encontra o endereço de um campo no objeto cuja referência está atualmente na pilha de avaliação.

public: static initonly System::Reflection::Emit::OpCode Ldflda;
public static readonly System.Reflection.Emit.OpCode Ldflda;
 staticval mutable Ldflda : System.Reflection.Emit.OpCode
Public Shared ReadOnly Ldflda As OpCode 

Valor de Campo

Observações

A tabela seguinte lista o formato hexadecimal e assembly da Microsoft Intermediate Language (MSIL) da instrução, juntamente com um breve resumo de referência:

Formato Formato de Montagem Description
7C <T> LDFLDA field Empurra o endereço de field num objeto especificado para a pilha.

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

  1. Uma referência de objeto (ou apontador) é empurrada para a pilha.

  2. A referência do objeto (ou apontador) é retirada da pilha; O endereço do campo especificado no objeto é encontrado.

  3. O endereço do campo especificado é empurrado para a pilha.

A ldflda instrução empurra o endereço de um campo localizado num objeto para a pilha. O objeto deve estar na pilha como referência de objeto (tipo O), ponteiro gerido (tipo &), ponteiro não gerido (tipo native int), ponteiro transitório (tipo *), ou uma instância de um tipo de valor. O uso de um ponteiro não gerido não é permitido em código verificável. O campo do objeto é especificado por um token de metadados que deve referir-se a um membro do campo.

O valor devolvido por ldflda é um ponteiro gerido (tipo &), a menos que o objeto seja empurrado para a pilha como um ponteiro não gerido, caso em que o endereço de retorno também é um ponteiro não gerido (tipo native int).

A ldflda instrução pode ser precedida por um ou ambos os Unaligned prefixos de e.Volatile

InvalidOperationException é lançado se o objeto não estiver dentro do domínio de aplicação a partir do qual está a ser acedido. O endereço de um campo que não está dentro do domínio de aplicação aceder não pode ser carregado.

NullReferenceException é lançado se o objeto for nulo e o campo não for estático.

MissingFieldException é lançado se o campo especificado não for encontrado nos metadados. Isto é normalmente verificado quando instruções da Microsoft Intermediate Language (MSIL) são convertidas para código nativo, e não em tempo de execução.

O seguinte Emit método de sobrecarga pode usar o ldflda opcode:

Aplica-se a