OpCodes.Unbox Champ

Définition

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 :

  1. Une référence d’objet est envoyée sur la pile.

  2. La référence d’objet est extraite de la pile et décochée vers un pointeur de type valeur.

  3. 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 :

S’applique à