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.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 

Valeur de champ

Remarques

Le tableau suivant répertorie le format d’assembly hexadécimal et MSIL (Microsoft Intermediate Language) de l’instruction, ainsi qu’une brève synthèse de référence :The following table lists the instruction's hexadecimal and Microsoft Intermediate Language (MSIL) assembly format, along with a brief reference summary:

FormatFormat Format d’assemblyAssembly Format DescriptionDescription
7C < T >7C < T > @no__t ldflda-0ldflda field Exécute un push de l’adresse de field dans un objet spécifié dans la pile.Pushes the address of field in a specified object onto the stack.

Le comportement de transition de la pile, dans l’ordre séquentiel, est le suivant :The stack transitional behavior, in sequential order, is:

  1. Une référence d’objet (ou un pointeur) fait l’objet d’un push dans la pile.An object reference (or pointer) is pushed onto the stack.

  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.The object reference (or pointer) is popped from the stack; the address of the specified field in the object is found.

  3. L’adresse du champ spécifié fait l’objet d’un push dans la pile.The address of the specified field is pushed onto the stack.

L’instruction ldflda exécute un push de l’adresse d’un champ situé dans un objet sur la pile.The ldflda instruction pushes the address of a field located in an object onto the stack. L’objet doit se trouver sur la pile comme une référence d’objet (type O), un pointeur managé (type &), un pointeur non managé (type native int), un pointeur transitoire (type *) ou une instance d’un type valeur.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. L’utilisation d’un pointeur non managé n’est pas autorisée dans du code vérifiable.The use of an unmanaged pointer is not permitted in verifiable code. 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.The object's field is specified by a metadata token that must refer to a field member.

La valeur retournée par ldflda est un pointeur managé (type &), sauf si l’objet fait l’objet d’un push dans la pile en tant que pointeur non managé, auquel cas l’adresse de retour est également un pointeur non managé (type 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).

L’instruction ldflda peut être précédée de l’un ou des deux préfixes Unaligned et Volatile.The ldflda instruction can be preceded by either or both of the Unaligned and Volatile prefixes.

InvalidOperationException est levée si l’objet ne se trouve pas dans le domaine d’application à partir duquel il fait l’objet d’un accès.InvalidOperationException is thrown if the object is not within the application domain from which it is being accessed. L’adresse d’un champ qui ne se trouve pas à l’intérieur du domaine d’application d’accès ne peut pas être chargée.The address of a field that is not inside the accessing application domain cannot be loaded.

NullReferenceException est levée si l’objet est null et que le champ n’est pas statique.NullReferenceException is thrown if the object is null and the field is not static.

MissingFieldException est levée si le champ spécifié est introuvable dans les métadonnées.MissingFieldException is thrown if the specified field is not found in the metadata. 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.This is typically checked when Microsoft Intermediate Language (MSIL) instructions are converted to native code, not at run time.

La surcharge de méthode Emit suivante peut utiliser l’opcode ldflda :The following Emit method overload can use the ldflda opcode:

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

S’applique à