Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Konvertiert die Darstellung eines mittels Boxing gepackten Werttyps in seine mittels Unboxing entpackte Entsprechung.
Namespace: System.Reflection.Emit
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
Public Shared ReadOnly Unbox As OpCode
'Usage
Dim value As OpCode
value = OpCodes.Unbox
public static readonly OpCode Unbox
public:
static initonly OpCode Unbox
public static final OpCode Unbox
public static final var Unbox : OpCode
Hinweise
In der folgenden Tabelle werden das hexadezimale und das Assemblyformat der MSIL (Microsoft Intermediate Language) jeweils mit einer Kurzreferenz aufgeführt:
Format |
Assemblyformat |
Beschreibung |
|---|---|---|
79 < T > |
unbox valType |
Extrahiert die Werttypdaten aus obj, seiner (mittels Boxing) geschachtelten Darstellung. |
Im Stapel laufen die folgenden Aktionen in der angegebenen Reihenfolge ab:
Ein Objektverweis wird auf dem Stapel abgelegt.
Der Objektverweis wird vom Stapel geholt und mittels Unboxing als Werttypzeiger entpackt.
Der Werttypzeiger wird auf dem Stapel abgelegt.
Für einen Werttyp gibt es in der CLI (Common Language Infrastructure) zwei getrennte Darstellungen:
Eine unformatierte Darstellung, die bei einem Werttyp verwendet wird, der in ein anderes Objekt eingebettet ist.
Eine "geschachtelte" Darstellung, bei der die Daten im Werttyp in ein Objekt eingebettet (mittels Boxing gepackt) sind, sodass es als unabhängige Einheit vorhanden ist.
Die unbox-Anweisung konvertiert den Objektverweis (Typ O), d. h. die geschachtelte Darstellung eines Werttyps, in einen Werttypzeiger (ein verwalteter Zeiger vom Typ &), d. h. in seine nicht geschachtelte Form. Der bereitgestellte Werttyp (valType) ist ein Metadatentoken, das den Typ des in dem geschachtelten Objekt enthaltenen Werttyps angibt.
Im Gegensatz zu Box, wo für die Verwendung im Objekt das Erstellen einer Kopie des Werttyps erforderlich ist, muss unbox keine Kopie des Werttyps aus dem Objekt erstellen. In der Regel wird hier einfach die Adresse des Werttyps berechnet, der sich bereits innerhalb des mittels Boxing gepackten Objekts befindet.
Wenn das Objekt nicht (mittels Boxing) als valType geschachtelt ist, wird InvalidCastException ausgelöst.
Wenn der Objektverweis ein NULL-Verweis ist, wird NullReferenceException ausgelöst.
TypeLoadException wird ausgelöst, wenn der valType-Werttyp nicht gefunden werden kann. Dies wird normalerweise nicht zur Laufzeit erkannt, sondern wenn MSIL (Microsoft Intermediate Language)-Anweisungen in systemeigenen Code konvertiert werden.
Die folgende Überladung der Emit-Methode verwendet den unbox-Opcode:
- ILGenerator.Emit(OpCode, Type)
Plattformen
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
Siehe auch
Referenz
OpCodes-Klasse
OpCodes-Member
System.Reflection.Emit-Namespace