OpCodes.Ldind_I4 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.
Charge indirectement une valeur de type int32
en tant que int32
dans la pile d'évaluation.
public: static initonly System::Reflection::Emit::OpCode Ldind_I4;
public static readonly System.Reflection.Emit.OpCode Ldind_I4;
staticval mutable Ldind_I4 : System.Reflection.Emit.OpCode
Public Shared ReadOnly Ldind_I4 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 |
---|---|---|
4A | ldind.i4 | Charge la int32 valeur à l’adresse addr sur la pile en tant que int32 . |
Le comportement transitoire de la pile, dans l’ordre séquentiel, est le suivant :
Une adresse est envoyée dans la pile.
L’adresse est extraite de la pile ; la valeur située à l’adresse est récupérée.
La valeur extraite est poussée vers la pile.
L’instruction ldind.i4
charge indirectement une int32
valeur à partir de l’adresse spécifiée (de type native int
, &
ou *) sur la pile en tant que int32
.
Toutes les ldind
instructions sont des raccourcis pour une Ldobj instruction qui spécifie la classe de valeur intégrée correspondante.
Notez que les valeurs entières inférieures à 4 octets sont étendues à int32
(pas native int
) lorsqu’elles sont chargées sur la pile d’évaluation. Les valeurs à virgule flottante sont converties en F
type lorsqu’elles sont chargées sur la pile d’évaluation.
Microsoft Intermediate Language (MSIL) correctement formé garantit que les ldind
instructions sont utilisées d’une manière cohérente avec le type du pointeur.
L’adresse initialement poussée sur la pile doit être alignée sur la taille naturelle des objets sur la machine ou un NullReferenceException peut se produire (voir l’instruction Unaligned de préfixe pour les mesures préventives). Les résultats de toutes les instructions MSIL qui retournent des adresses (par exemple, Ldloca et Ldarga) sont alignés en toute sécurité. Pour les types de données supérieurs à 1 octet, l’ordre des octets dépend du processeur cible. Le code qui dépend de l’ordre des octets peut ne pas s’exécuter sur toutes les plateformes.
NullReferenceException peut être levée si une adresse non valide est détectée.
La surcharge de méthode suivante Emit peut utiliser l’opcode ldind.i4
: