Freigeben über


OpCodes.Box-Feld

Konvertiert einen Werttyp in einen Objektverweis (Typ O).

Namespace: System.Reflection.Emit
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public Shared ReadOnly Box As OpCode
'Usage
Dim value As OpCode

value = OpCodes.Box
public static readonly OpCode Box
public:
static initonly OpCode Box
public static final OpCode Box
public static final var Box : 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

8C < T >

box valTypeToken

Konvertiert einen Werttyp (von dem in valTypeToken angegebenen Typ) in einen echten Objektverweis.

Im Stapel laufen die folgenden Aktionen in der angegebenen Reihenfolge ab:

  1. Ein Werttyp wird auf dem Stapel abgelegt.

  2. Der Werttyp wird vom Stapel geholt, und die box-Operation wird ausgeführt.

  3. Ein Objektverweis auf den entsprechenden, mittels Boxing gepackten Werttyp 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 oder sich auf dem Stapel befindet.

  • 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 box-Anweisung konvertiert den unformatierten (nicht geschachtelten) Werttyp in einen Objektverweis (Typ O). Dazu wird ein neues Objekt erstellt, und die Daten aus dem Werttyp werden in das neu reservierte Objekt kopiert. valTypeToken ist ein Metadatentoken, das den Typ des Datentyps auf dem Stapel angibt.

OutOfMemoryException wird ausgelöst, wenn für die Verarbeitung der Anforderung nicht genügend Speicher vorhanden ist.

TypeLoadException wird ausgelöst, wenn die Klasse nicht gefunden werden kann. Dies wird normalerweise nicht zur Laufzeit erkannt, sondern wenn MSIL (Microsoft Intermediate Language) in systemeigenen Code konvertiert wird.

Die folgende Überladung der Emit-Methode verwendet den box-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