OpCodes.Initobj 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.
Initialise chaque champ du type valeur à une adresse spécifiée à une référence Null ou un 0 du type primitif approprié.
public: static initonly System::Reflection::Emit::OpCode Initobj;
public static readonly System.Reflection.Emit.OpCode Initobj;
staticval mutable Initobj : System.Reflection.Emit.OpCode
Public Shared ReadOnly Initobj As OpCode
Valeur de champ
Remarques
Le tableau suivant répertorie le format d'assembly MSIL (Hexadécimal et Microsoft Intermediate Language) de l'instruction, ainsi qu'un bref résumé de référence :
| Format | Format d’assembly | Description |
|---|---|---|
FE 15 <T> |
initobj
typeTok
|
Initialise un type valeur. |
Le comportement transitionnel de la pile, dans l’ordre séquentiel, est :
L’adresse du type valeur à initialiser est envoyée (push) à la pile.
L’adresse est extraite de la pile ; le type de valeur à l’adresse spécifiée est initialisé en tant que type
typeTok.
L’instruction initobj initialise chaque champ du type valeur spécifié par l’adresse push (de type native int, &ou *) vers une référence Null ou un 0 du type primitif approprié. Une fois cette méthode appelée, l’instance est prête pour qu’une méthode de constructeur soit appelée. S’il typeTok s’agit d’un type référence, cette instruction a le même effet que ldnull celui suivi par stind.ref.
Contrairement Newobjà , initobj n’appelle pas la méthode constructeur.
Initobj est destiné à l’initialisation des types valeur, tandis qu’il newobj est utilisé pour allouer et initialiser des objets.
La surcharge de méthode suivante Emit peut utiliser l’opcode initobj :