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 Darstellung eines mittels Boxing gepackten Werttyps in seine mittels Unboxing entpackte Entsprechung.
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 MSIL-Assemblyformat (Microsoft Intermediate Language) der Anweisung sowie eine kurze Referenzzusammenfassung aufgeführt:
Format | Assemblyformat | BESCHREIBUNG |
---|---|---|
79 <T > |
Unbox valType |
Extrahiert die Werttypdaten aus obj der zugehörigen geschachtelten Darstellung. |
Das Übergangsverhalten des Stapels in sequenzieller Reihenfolge lautet:
Ein Objektverweis wird auf den Stapel gepusht.
Der Objektverweis wird aus dem Stapel geknallt und in einen Werttypzeiger ausgepackt.
Der Werttypzeiger wird auf den Stapel gepusht.
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 ist.
Ein "boxed"-Formular, bei dem die Daten im Werttyp in ein Objekt umschlossen (geschachtelt) werden, sodass sie als unabhängige Entität vorhanden sein können.
Die unbox
Anweisung konvertiert den Objektverweis (Typ O
), die geschachtelte Darstellung eines Werttyps, in einen Werttypzeiger (verwalteter Zeiger, Typ &
), dessen unboxed Form. Der angegebene Werttyp (valType
) ist ein Metadatentoken, das den Typ des Werttyps angibt, der im geschachtelten Objekt enthalten ist.
Im Gegensatz zu Box, das 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 geschachtelten Objekts vorhanden ist.
InvalidCastException wird ausgelöst, wenn das Objekt nicht als valType
geschachtelt ist.
NullReferenceException wird ausgelöst, wenn der Objektverweis ein NULL-Verweis ist.
TypeLoadException wird ausgelöst, wenn der Werttyp valType
nicht gefunden werden kann. Dies wird in der Regel erkannt, wenn MSIL-Anweisungen (Microsoft Intermediate Language) nicht zur Laufzeit, sondern in nativen Code konvertiert werden.
Die folgende Emit Methodenüberladung kann den unbox
Opcode verwenden:
Gilt für:
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Tickets als Feedbackmechanismus für Inhalte auslaufen lassen und es durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unter:Feedback senden und anzeigen für