OpCodes.Ldfld, champ
Mise à jour : novembre 2007
Recherche la valeur d'un champ dans l'objet dont la référence est actuellement située dans la pile d'évaluation.
Assembly : mscorlib (dans mscorlib.dll)
Le tableau suivant répertorie le format d'assembly hexadécimal et MSIL (Microsoft Intermediate Language) de l'instruction et donne un bref résumé de référence :
Format | Format d'assembly | Description |
|---|---|---|
7B < T > | ldfld field | Exécute un push de la valeur d'un champ dans un objet spécifié dans la pile. |
Le comportement de transition de la pile, dans un ordre séquentiel, est le suivant :
Une référence d'objet (ou pointeur) fait l'objet d'un push dans la pile.
La référence d'objet (ou pointeur) est extraite (pop) de la pile ; la valeur du champ spécifié dans l'objet est trouvée.
La valeur stockée dans le champ fait l'objet d'un push dans la pile.
L'instruction ldfld exécute un push de la valeur d'un champ situé dans un objet dans la pile. L'objet doit être situé dans la pile en tant que référence d'objet (type O), pointeur managé (type &), pointeur non managé (type native int), pointeur transitoire (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 champ de membre. Le type de retour est le même que celui associé au champ. Le champ peut être un champ d'instance (auquel cas l'objet ne doit pas être une référence null) ou un champ statique.
L'instruction ldfld peut être précédée du préfixe Unaligned ou Volatile, voire des deux.
NullReferenceException est levé si l'objet est null et que le champ n'est pas statique.
MissingFieldException est levé si le champ spécifié est introuvable dans les métadonnées. Cette exception est généralement vérifiée lors de la conversion des instructions MSIL (Microsoft Intermediate Language) en code natif et non pas au moment de l'exécution.
La surcharge de méthode Emit suivante peut utiliser l'opcode ldfld :
ILGenerator.Emit(OpCode, FieldInfo)
Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professionnel Édition x64, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98
Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.