Partager via


OpCodes.Ldflda Champ

Définition

Recherche l'adresse d'un champ dans l'objet dont la référence est actuellement située dans la pile d'évaluation.

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 

Valeur de champ

Remarques

Le tableau suivant répertorie le format d’assembly MSIL et hexadécimal de l’instruction, ainsi qu’un bref résumé des références :

Format Format d’assembly Description
7C <T> ldflda field Envoie l’adresse de field dans un objet spécifié sur la pile.

Le comportement transitoire de la pile, dans l’ordre séquentiel, est le suivant :

  1. Une référence d’objet (ou pointeur) est poussée vers la pile.

  2. La référence d’objet (ou pointeur) est extraite de la pile ; l’adresse du champ spécifié dans l’objet est trouvée.

  3. L’adresse du champ spécifié est envoyée à la pile.

L’instruction ldflda envoie l’adresse d’un champ situé dans un objet sur la pile. L’objet doit se trouver sur la pile en tant que référence d’objet (type O), pointeur managé (type &), pointeur non managé (type native int), pointeur temporaire (type *) ou instance d’un type valeur. L’utilisation d’un pointeur non managé n’est pas autorisée dans le code vérifiable. Le champ de l’objet est spécifié par un jeton de métadonnées qui doit faire référence à un membre de champ.

La valeur retournée par ldflda est un pointeur managé (type &), sauf si l’objet est envoyé sur la pile en tant que pointeur non managé, auquel cas l’adresse de retour est également un pointeur non managé (type native int).

L’instruction ldflda peut être précédée des préfixes et Volatile ou des Unaligned deux.

InvalidOperationException est levée si l’objet ne se trouve pas dans le domaine d’application à partir duquel il est accessible. L’adresse d’un champ qui n’est pas à l’intérieur du domaine d’application qui accède ne peut pas être chargée.

NullReferenceException est levée si l’objet est null et si le champ n’est pas statique.

MissingFieldException est levée si le champ spécifié est introuvable dans les métadonnées. Cela est généralement vérifié lorsque les instructions MSIL (Microsoft Intermediate Language) sont converties en code natif, et non au moment de l’exécution.

La surcharge de méthode suivante Emit peut utiliser l’opcode ldflda :

S’applique à