OpCodes.Ldflda Campo

Definição

Localiza o endereço de um campo no objeto cuja referência está na pilha de avaliação no momento.Finds the address of a field in the object whose reference is currently on the evaluation stack.

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

OpCode

Comentários

A tabela a seguir lista o formato de assembly hexadecimal e da MSIL (Microsoft Intermediate Language) da instrução, juntamente com um resumo de referência breve:The following table lists the instruction's hexadecimal and Microsoft Intermediate Language (MSIL) assembly format, along with a brief reference summary:

FormatarFormat Formato do assemblyAssembly Format DescriçãoDescription
< 7C T >7C < T > ldflda fieldldflda field Envia por push o endereço de field em um objeto especificado para a pilha.Pushes the address of field in a specified object onto the stack.

O comportamento de transição de pilha, em ordem sequencial, é:The stack transitional behavior, in sequential order, is:

  1. Uma referência de objeto (ou ponteiro) é enviada por push para a pilha.An object reference (or pointer) is pushed onto the stack.

  2. A referência de objeto (ou ponteiro) é exibida da pilha; o endereço do campo especificado no objeto é encontrado.The object reference (or pointer) is popped from the stack; the address of the specified field in the object is found.

  3. O endereço do campo especificado é enviado por push para a pilha.The address of the specified field is pushed onto the stack.

A ldflda instrução envia por push o endereço de um campo localizado em um objeto para a pilha.The ldflda instruction pushes the address of a field located in an object onto the stack. 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.The object must be on the stack as an object reference (type O), a managed pointer (type &), an unmanaged pointer (type native int), a transient pointer (type *), or an instance of a value type. O uso de um ponteiro não gerenciado não é permitido no código verificável.The use of an unmanaged pointer is not permitted in verifiable code. O campo do objeto é especificado por um token de metadados que deve se referir a um membro de campo.The object's field is specified by a metadata token that must refer to a field member.

O valor retornado por ldflda é um ponteiro gerenciado (tipo & ), a menos que o objeto seja enviado 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 ).The value returned by ldflda is a managed pointer (type &) unless the object is pushed onto the stack as an unmanaged pointer, in which case the return address is also an unmanaged pointer (type native int).

A ldflda instrução pode ser precedida por um ou ambos os Unaligned Volatile prefixos e.The ldflda instruction can be preceded by either or both of the Unaligned and Volatile prefixes.

InvalidOperationException será gerado se o objeto não estiver dentro do domínio do aplicativo do qual ele está sendo acessado.InvalidOperationException is thrown if the object is not within the application domain from which it is being accessed. O endereço de um campo que não está dentro do domínio de aplicativo de acesso não pode ser carregado.The address of a field that is not inside the accessing application domain cannot be loaded.

NullReferenceException será gerado se o objeto for nulo e o campo não for estático.NullReferenceException is thrown if the object is null and the field is not static.

MissingFieldException será gerado se o campo especificado não for encontrado nos metadados.MissingFieldException is thrown if the specified field is not found in the metadata. Normalmente, isso é verificado quando as instruções da MSIL (Microsoft Intermediate Language) são convertidas em código nativo, não em tempo de execução.This is typically checked when Microsoft Intermediate Language (MSIL) instructions are converted to native code, not at run time.

A sobrecarga do método a seguir Emit pode usar o ldflda opcode:The following Emit method overload can use the ldflda opcode:

Aplica-se a