OpCodes.Box Fält

Definition

Konverterar en värdetyp till en objektreferens (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 

Fältvärde

Kommentarer

I följande tabell visas instruktionens sammansättningsformat för hexadecimalt och Microsoft mellanliggande språk (MSIL), tillsammans med en kort referenssammanfattning:

Format Sammansättningsformat Description
8C <T> Rutan valTypeToken Konvertera en värdetyp (av den typ som anges i valTypeToken) till en sann objektreferens.

Stackens övergångsbeteende i sekventiell ordning är:

  1. En värdetyp skickas till stacken.

  2. Värdetypen poppas från stacken. åtgärden box utförs.

  3. En objektreferens till den resulterande värdetypen "boxad" skickas till stacken.

En värdetyp har två separata representationer i COMMON Language Infrastructure (CLI):

  • Ett "raw"-formulär som används när en värdetyp bäddas in i ett annat objekt eller i stacken.

  • Ett "boxat" formulär, där data i värdetypen omsluts (boxas) i ett objekt så att de kan finnas som en oberoende entitet.

Instruktionen box konverterar värdetypen "raw" (unboxed) till en objektreferens (typ O). Detta uppnås genom att skapa ett nytt objekt och kopiera data från värdetypen till det nyligen allokerade objektet. valTypeToken är en metadatatoken som anger typen av värdetyp i stacken.

OutOfMemoryException genereras om det inte finns tillräckligt med minne för att uppfylla begäran.

TypeLoadException genereras om klassen inte kan hittas. Detta identifieras vanligtvis när Microsoft mellanliggande språk (MSIL) konverteras till intern kod i stället för vid körning.

Följande Emit metodöverlagring kan använda box opcode:

Gäller för