OpCodes.Ldflda Campo

Definición

Busca la dirección de un campo en el objeto cuya referencia se encuentra actualmente en la pila de evaluación.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 de campo

Comentarios

En la tabla siguiente se muestra el formato de ensamblado hexadecimal de la instrucción y del lenguaje intermedio de Microsoft (MSIL), junto con un breve resumen de referencia:The following table lists the instruction's hexadecimal and Microsoft Intermediate Language (MSIL) assembly format, along with a brief reference summary:

FormatoFormat Formato de ensambladoAssembly Format DescripciónDescription
7C < T >7C < T > ldflda fieldldflda field Envía la dirección de field de un objeto especificado a la pila.Pushes the address of field in a specified object onto the stack.

El comportamiento de transición de la pila, en orden secuencial, es el siguiente:The stack transitional behavior, in sequential order, is:

  1. Una referencia de objeto (o puntero) se inserta en la pila.An object reference (or pointer) is pushed onto the stack.

  2. La referencia de objeto (o puntero) se extrae de la pila; se encuentra la dirección del campo especificado en el objeto.The object reference (or pointer) is popped from the stack; the address of the specified field in the object is found.

  3. La dirección del campo especificado se inserta en la pila.The address of the specified field is pushed onto the stack.

La instrucción ldflda inserciones en la pila la dirección de un campo situado en un objeto.The ldflda instruction pushes the address of a field located in an object onto the stack. El objeto debe estar en la pila como una referencia de objeto (tipo O), un puntero administrado (tipo &), un puntero no administrado (tipo native int), un puntero transitorio (tipo *) o una instancia de un 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. No se permite el uso de un puntero no administrado en código comprobable.The use of an unmanaged pointer is not permitted in verifiable code. El campo del objeto se especifica mediante un token de metadatos que debe hacer referencia a un miembro de campo.The object's field is specified by a metadata token that must refer to a field member.

El valor devuelto por ldflda es un puntero administrado (tipo &), a menos que el objeto se inserte en la pila como un puntero no administrado, en cuyo caso la dirección de retorno es también un puntero no administrado (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).

La instrucción ldflda puede ir precedida de uno o los dos prefijos Unaligned y Volatile.The ldflda instruction can be preceded by either or both of the Unaligned and Volatile prefixes.

se produce InvalidOperationException si el objeto no está dentro del dominio de aplicación desde el que se tiene acceso a él.InvalidOperationException is thrown if the object is not within the application domain from which it is being accessed. No se puede cargar la dirección de un campo que no está dentro del dominio de aplicación de acceso.The address of a field that is not inside the accessing application domain cannot be loaded.

se produce NullReferenceException si el objeto es NULL y el campo no es estático.NullReferenceException is thrown if the object is null and the field is not static.

se produce MissingFieldException si el campo especificado no se encuentra en los metadatos.MissingFieldException is thrown if the specified field is not found in the metadata. Normalmente se comprueba cuando las instrucciones del lenguaje intermedio de Microsoft (MSIL) se convierten en código nativo, no en tiempo de ejecución.This is typically checked when Microsoft Intermediate Language (MSIL) instructions are converted to native code, not at run time.

La siguiente sobrecarga del método Emit puede utilizar el código de operación ldflda:The following Emit method overload can use the ldflda opcode:

  • ILGenerator. Emit (OpCode, FieldInfo)ILGenerator.Emit(OpCode, FieldInfo)

Se aplica a