Partager via


OpCodes.Initobj Champ

Définition

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 :

  1. L’adresse du type valeur à initialiser est envoyée (push) à 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 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 :

S’applique à