OpCodes.Unbox Feld
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Konvertiert die Boxdarstellung eines Werttyps in das unboxierte Formular.
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
Feldwert
Hinweise
In der folgenden Tabelle sind das Hexadezimal- und Microsoft MSIL-Assemblyformat (Intermediate Language) der Anweisung zusammen mit einer kurzen Referenzzusammenfassung aufgeführt:
| Format | Assemblyformat | Description |
|---|---|---|
79 <T> |
Unbox valType |
Extrahiert die Werttypdaten aus obj, deren Boxdarstellung. |
Das Übergangsverhalten des Stapels in sequenzieller Reihenfolge lautet:
Ein Objektverweis wird auf den Stapel verschoben.
Der Objektverweis wird vom Stapel und aus dem Posteingang in einen Werttypzeiger eingeplippt.
Der Werttypzeiger wird auf den Stapel verschoben.
Ein Werttyp verfügt über zwei separate Darstellungen innerhalb der Common Language Infrastructure (CLI):
Ein "rohes" Formular, das verwendet wird, wenn ein Werttyp in ein anderes Objekt eingebettet wird.
Ein "Boxed"-Formular, in dem die Daten im Werttyp in ein Objekt eingeschlossen werden, sodass sie als unabhängige Entität vorhanden sein können.
Die unbox Anweisung konvertiert den Objektverweis (Typ O), die boxierte Darstellung eines Werttyps, in einen Werttypzeiger (einen verwalteten Zeiger, Typ), &dessen unboxiertes Formular. Der angegebene Werttyp (valType) ist ein Metadatentoken, das den Typ des Werttyps im boxenden Objekt angibt.
Im Gegensatz dazu Box, was erforderlich ist, um eine Kopie eines Werttyps für die Verwendung im Objekt zu erstellen, ist nicht erforderlich, unbox um den Werttyp aus dem Objekt zu kopieren. In der Regel wird einfach die Adresse des Werttyps berechnet, der bereits innerhalb des boxierten Objekts vorhanden ist.
InvalidCastException wird ausgelöst, wenn das Objekt nicht als valTypeboxt wird.
NullReferenceException wird ausgelöst, wenn der Objektverweis ein Nullverweis ist.
TypeLoadException wird ausgelöst, wenn der Werttyp valType nicht gefunden werden kann. Dies wird in der Regel erkannt, wenn Microsoft MSIL-Anweisungen (Intermediate Language) nicht zur Laufzeit, sondern in systemeigenen Code konvertiert werden.
Die folgende Emit Methodenüberladung kann den unbox Opcode verwenden: