OpCodes.Ldflda 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.
Localiza o endereço de um campo no objeto cuja referência está na pilha de avaliação no momento.
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 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 |
---|---|---|
7C <T > |
Ldflda field |
Envia por push o endereço de field em um objeto especificado para a pilha. |
O comportamento de transição da pilha, em ordem sequencial, é:
Uma referência de objeto (ou ponteiro) é enviada por push para a pilha.
A referência de objeto (ou ponteiro) é exibida da pilha; o endereço do campo especificado no objeto é encontrado.
O endereço do campo especificado é enviado por push para a pilha.
A ldflda
instrução envia por push o endereço de um campo localizado em um objeto para a pilha. O objeto deve estar na pilha como uma referência de objeto (tipo O
), um ponteiro gerenciado (tipo &
), um ponteiro não gerenciado (tipo native int
), um ponteiro transitório (tipo *
) ou uma instância de um tipo de valor. O uso de um ponteiro não gerenciado não é permitido no código verificável. O campo do objeto é especificado por um token de metadados que deve se referir a um membro de campo.
O valor retornado por ldflda
é um ponteiro gerenciado (tipo &
) a menos que o objeto seja enviado por push para a pilha como um ponteiro não gerenciado, nesse caso, o endereço de retorno também é um ponteiro não gerenciado (tipo native int
).
A ldflda
instrução pode ser precedida por prefixos e ou VolatileUnaligned ambos.
InvalidOperationException será gerado se o objeto não estiver dentro do domínio do aplicativo do qual ele está sendo acessado. O endereço de um campo que não está dentro do domínio do aplicativo de acesso não pode ser carregado.
NullReferenceException será gerado se o objeto for nulo e o campo não for estático.
MissingFieldException será gerado se o campo especificado não for encontrado nos metadados. Normalmente, isso é verificado quando as instruções da MSIL (Linguagem Intermediária da Microsoft) são convertidas em código nativo, não em tempo de execução.
A sobrecarga do método Emit a seguir pode usar o ldflda
opcode: