OpCodes.Initobj Champ

Définition

Initialise tous les champs du type de valeur figurant à l'adresse spécifiée en utilisant la référence null ou la valeur 0 du type primitif qui convient.

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 et hexadécimal de l’instruction, ainsi qu’un bref résumé des références :

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 le suivant :

  1. L’adresse du type de valeur à initialiser est envoyée dans la pile.

  2. 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 envoyée (de type native int, &ou *) à une référence Null ou à un 0 du type primitif approprié. Une fois cette méthode appelée, le instance est prêt pour qu’une méthode de constructeur soit appelée. Si typeTok est un type 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é à l’initialisation des types valeur, tandis que newobj est utilisé pour allouer et initialiser des objets.

La surcharge de méthode suivante Emit peut utiliser l’opcode initobj :

S’applique à