Développer Réduire
Cet article a fait l'objet d'une traduction automatique. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. Informations supplémentaires.
Traduction
Source
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

OpCodes.Initobj, champ

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

Espace de noms :  System.Reflection.Emit
Assembly :  mscorlib (dans mscorlib.dll)
public static readonly OpCode Initobj

Le tableau suivant répertorie le format d'assembly hexadécimal et MSIL (Microsoft Intermediate Language) de l'instruction et donne un bref résumé de référence :

Format

Format d'assembly

Description

FE 15 < T >

initobj typeTok

Initialise un type valeur.

Le comportement de transition de la pile, dans un ordre séquentiel, est le suivant :

  1. L'adresse du type valeur à initialiser fait l'objet d'un push dans la pile.

  2. L'adresse est dépilée ; le type valeur situé à l'adresse spécifiée est initialisé en tant que type typeTok.

L'instruction initobj initialise tous les champs du type valeur spécifié par l'adresse ayant fait l'objet d'un push (de type native int, & ou *) en utilisant la référence null ou la valeur 0 du type primitif qui convient. Une fois cette méthode appelée, l'instance est prête pour que la méthode de constructeur soit appelée. Si typeTok correspond à 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 de constructeur. Initobj est prévu pour l'initialisation de types valeur, tandis que newobj est utilisé pour allouer et initialiser des objets.

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

  • ILGenerator.Emit(OpCode, Type)

.NET Framework

Pris en charge dans : 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

.NET pour les applications du Windows Store

Pris en charge dans : Windows 8

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (rôle principal du serveur non pris en charge), Windows Server 2008 R2 (rôle principal du serveur pris en charge avec SP1 ou version ultérieure ; Itanium non pris en charge)

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Cela vous a-t-il été utile ?
(1500 caractères restants)

Ajouts de la communauté

AJOUTER
© 2013 Microsoft. Tous droits réservés.