Compartir a través de


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.

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 y del lenguaje intermedio de Microsoft (MSIL), junto con un breve resumen de referencia:

Formato Formato de ensamblado Descripción
7C <T> ldflda field Inserta la dirección de field en un objeto especificado en la pila.

El comportamiento transitorio de la pila, en orden secuencial, es:

  1. Una referencia de objeto (o puntero) se inserta en la pila.

  2. La referencia de objeto (o puntero) se extrae de la pila; se encuentra la dirección del campo especificado en el objeto .

  3. La dirección del campo especificado se inserta en la pila.

La ldflda instrucción inserta la dirección de un campo ubicado en un objeto en la pila. 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. El uso de un puntero no administrado no se permite en el código verificable. El campo del objeto se especifica mediante un token de metadatos que debe hacer referencia a un miembro de campo.

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 también es un puntero no administrado (tipo native int).

La ldflda instrucción puede ir precedida de o de los Unaligned prefijos y Volatile .

InvalidOperationException se produce si el objeto no está dentro del dominio de aplicación desde el que se accede a él. No se puede cargar la dirección de un campo que no está dentro del dominio de aplicación de acceso.

NullReferenceException se produce si el objeto es null y el campo no es estático.

MissingFieldException se produce si el campo especificado no se encuentra en los metadatos. Normalmente, esto se comprueba cuando las instrucciones del lenguaje intermedio de Microsoft (MSIL) se convierten en código nativo, no en tiempo de ejecución.

La sobrecarga del método siguiente Emit puede usar el ldflda código de operación:

Se aplica a