OpCodes.Ldflda Champ
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 :
Une référence d’objet (ou pointeur) est poussée vers la pile.
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.
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
: