OpCodes.Unbox 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.
Convertit la représentation boxed d'un type de valeur dans sa forme unboxed.
public: static initonly System::Reflection::Emit::OpCode Unbox;
public static readonly System.Reflection.Emit.OpCode Unbox;
staticval mutable Unbox : System.Reflection.Emit.OpCode
Public Shared ReadOnly Unbox 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 |
---|---|---|
79 <T > |
Unbox valType |
Extrait les données de type valeur de obj , sa représentation encadrée. |
Le comportement transitoire de la pile, dans l’ordre séquentiel, est le suivant :
Une référence d’objet est envoyée sur la pile.
La référence d’objet est extraite de la pile et décochée vers un pointeur de type valeur.
Le pointeur de type valeur est envoyé sur la pile.
Un type de valeur a deux représentations distinctes au sein de l’infrastructure de langage commun (CLI) :
Formulaire « brut » utilisé lorsqu’un type valeur est incorporé dans un autre objet.
Formulaire « boxed », où les données du type valeur sont encapsulées (encadrées) dans un objet afin qu’elles puissent exister en tant qu’entité indépendante.
L’instruction unbox
convertit la référence d’objet (type O
), la représentation boxée d’un type valeur, en pointeur de type valeur (un pointeur managé, type &
), son formulaire non encadré. Le type de valeur fourni (valType
) est un jeton de métadonnées qui indique le type de type valeur contenu dans l’objet boxed.
Contrairement à Box, qui est nécessaire pour effectuer une copie d’un type value à utiliser dans l’objet, unbox
n’est pas nécessaire pour copier le type valeur à partir de l’objet . En règle générale, il calcule simplement l’adresse du type de valeur déjà présent à l’intérieur de l’objet boxed.
InvalidCastException est levée si l’objet n’est pas boxé en tant que valType
.
NullReferenceException est levée si la référence d’objet est une référence null.
TypeLoadException est levée si le type valType
de valeur est introuvable. Cela est généralement détecté lorsque les instructions MSIL (Microsoft Intermediate Language) sont converties en code natif, plutôt qu’au moment de l’exécution.
La surcharge de méthode suivante Emit peut utiliser l’opcode unbox
: