OpCodes.Box 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 einen Werttyp in einen Objektverweis (Typ O
).
public: static initonly System::Reflection::Emit::OpCode Box;
public static readonly System.Reflection.Emit.OpCode Box;
staticval mutable Box : System.Reflection.Emit.OpCode
Public Shared ReadOnly Box 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 |
---|---|---|
8C <T > |
Box valTypeToken |
Konvertieren Sie einen Werttyp (des in angegebenen Typs ) in valTypeToken einen true-Objektverweis. |
Das Stapelübergangsverhalten in sequenzieller Reihenfolge lautet:
Ein Werttyp wird auf den Stapel gepusht.
Der Werttyp wird aus dem Stapel gekippt. der
box
Vorgang ausgeführt wird.Ein Objektverweis auf den resultierenden Werttyp "boxed" wird auf den Stapel gepusht.
Ein Werttyp verfügt über zwei separate Darstellungen innerhalb der Common Language Infrastructure (CLI):
Ein unformatiertes Formular, das verwendet wird, wenn ein Werttyp in ein anderes Objekt oder im Stapel 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 box
Anweisung konvertiert den Werttyp "raw" (unboxed) in einen Objektverweis (Typ O
). Dies wird erreicht, indem sie ein neues Objekt erstellen und die Daten aus dem Werttyp in das neu zugeordnete Objekt kopieren.
valTypeToken
ist ein Metadatentoken, das den Typ des Werttyps auf dem Stapel angibt.
OutOfMemoryException wird ausgelöst, wenn nicht genügend Arbeitsspeicher vorhanden ist, um die Anforderung zu erfüllen.
TypeLoadException wird ausgelöst, wenn die Klasse nicht gefunden werden kann. Dies wird in der Regel erkannt, wenn Microsoft Intermediate Language (MSIL) nicht zur Laufzeit, sondern in nativen Code konvertiert wird.
Die folgende Emit Methodenüberladung kann den box
opcode verwenden: