Teilen über


OpCodes.Unbox_Any Feld

Definition

Konvertiert die boxierte Darstellung eines Typs, der in der Anweisung angegeben ist, in das unboxierte Formular.

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 

Feldwert

Hinweise

In der folgenden Tabelle sind das Hexadezimal- und das MSIL-Assemblyformat (Microsoft Intermediate Language) sowie eine kurze Referenzzusammenfassung aufgeführt:

Format Assemblyformat Beschreibung
A5 <T> unbox.any typeTok Extrahieren Sie die Daten aus obj, der zugehörigen Boxdarstellung.

Das Übergangsverhalten des Stapels in sequenzieller Reihenfolge lautet:

  1. Ein Objektverweis obj wird auf den Stapel verschoben.

  2. Der Objektverweis wird aus dem Stapel und dem in der Anweisung angegebenen Typ getrennt.

  3. Der resultierende Objektverweis oder Werttyp wird auf den Stapel verschoben.

Bei Anwendung auf die boxierte Form eines Werttyps extrahiert die unbox.any Anweisung den In obj (vom Typ O) enthaltenen Wert und entspricht daher unbox gefolgt von ldobj.

Wenn sie auf einen Verweistyp angewendet wird, hat die unbox.any Anweisung die gleiche Auswirkung wie castclasstypeTok.

Wenn der Operand typeTok ein generischer Typparameter ist, wird das Laufzeitverhalten durch den Typ bestimmt, der für diesen generischen Typparameter angegeben ist.

InvalidCastException wird ausgelöst, wenn obj kein Boxtyp ist.

NullReferenceException wird ausgelöst, wenn obj ein Nullverweis ist.

Die folgende Emit Methodenüberladung kann den unbox.any opcode verwenden:

Gilt für: