OpCodes.Unbox_Any Campo

Definizione

Converte la rappresentazione boxed di un tipo specificato nell'istruzione nel relativo formato unboxed.

public: static initonly System::Reflection::Emit::OpCode Unbox_Any;
public static readonly System.Reflection.Emit.OpCode Unbox_Any;
 staticval mutable Unbox_Any : System.Reflection.Emit.OpCode
Public Shared ReadOnly Unbox_Any As OpCode 

Valore del campo

Commenti

La tabella seguente elenca il formato dell'assembly esadecimale e microsoft intermedio (MSIL), insieme a un breve riepilogo di riferimento:

Formato Formato assembly Descrizione
A5 <T> unbox.any typeTok Estrarre i dati da obj, la relativa rappresentazione in box.

Il comportamento di transizione dello stack, in ordine sequenziale, è:

  1. Un riferimento obj all'oggetto viene eseguito il push nello stack.

  2. Il riferimento all'oggetto viene rimosso dallo stack e unboxed al tipo specificato nell'istruzione.

  3. Il tipo di riferimento o valore risultante viene eseguito il push nello stack.

Quando applicato alla forma boxed di un tipo valore, l'istruzione unbox.any estrae il valore contenuto all'interno obj (di tipo O) ed è quindi equivalente a unbox seguito di ldobj.

Se applicato a un tipo di riferimento, l'istruzione unbox.any ha lo stesso effetto di castclasstypeTok.

Se l'operando typeTok è un parametro di tipo generico, il comportamento del runtime viene determinato dal tipo specificato per tale parametro di tipo generico.

InvalidCastException viene generato se obj non è un tipo boxed.

NullReferenceException viene generato se obj è un riferimento Null.

L'overload del metodo seguente Emit può usare il unbox.any codice opcode:

Si applica a