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 hexadécimal et MSIL (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 *
) à 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. Si typeTok
est un type de référence, cette instruction a le même effet que ldnull
suivi de stind.ref
.
Contrairement à Newobj, initobj
n’appelle pas la méthode du constructeur.
Initobj
est destiné à initialiser les types valeur, tandis que newobj
est utilisé pour allouer et initialiser des objets.
La surcharge de méthode Emit suivante peut utiliser le initobj
opcode :