OpCodes.Ldflda Campo
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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, é:
Uma referência de objeto (ou apontador) é empurrada para a pilha.
A referência do objeto (ou apontador) é retirada da pilha; O endereço do campo especificado no objeto é encontrado.
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: