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 boxée d’un type valeur en son formulaire non encadré.
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 (Hexadécimal et Microsoft Intermediate Language) de l'instruction, ainsi qu'un bref résumé de référence :
| Format | Format d’assembly | Description |
|---|---|---|
79 <T> |
Unbox valType |
Extrait les données de type valeur à partir de obj, sa représentation boxée. |
Le comportement transitionnel de la pile, dans l’ordre séquentiel, est :
Une référence d’objet est envoyée (push) sur la pile.
La référence d’objet est dépilée de la pile et nonboxée vers un pointeur de type valeur.
Le pointeur de type valeur est envoyé (push) sur la pile.
Un type valeur a deux représentations distinctes dans l’interface CLI (Common Language Infrastructure) :
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 (boxed) 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 (pointeur managé, type &), son formulaire non encadré. Le type de valeur fourni (valType) est un jeton de métadonnées indiquant le type de type valeur contenu dans l’objet boxed.
Contrairement Boxà ce qui est nécessaire pour effectuer une copie d’un type valeur à utiliser dans l’objet, unbox il n’est pas nécessaire de copier le type valeur à partir de l’objet. En règle générale, il calcule simplement l’adresse du type 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 valeur est introuvable. Cela est généralement détecté lorsque Microsoft instructions MSIL (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 :