OpCodes.Unbox Fält
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Konverterar den boxade representationen av en värdetyp till dess oboxade formulär.
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
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 |
|---|---|---|
79 <T> |
Unbox valType |
Extraherar värdetypsdata från obj, dess inramade representation. |
Stackens övergångsbeteende i sekventiell ordning är:
En objektreferens skickas till stacken.
Objektreferensen poppas från stacken och tas bort till en värdetypspekare.
Värdetypspekaren 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 är inbäddad i ett annat objekt.
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 unbox konverterar objektreferensen (typ O), den boxade representationen av en värdetyp till en värdetypspekare (en hanterad pekare, typ &), dess oboxade formulär. Den angivna värdetypen (valType) är en metadatatoken som anger vilken typ av värdetyp som finns i det boxade objektet.
Till skillnad från Box, som krävs för att göra en kopia av en värdetyp för användning i objektet, unbox krävs inte för att kopiera värdetypen från objektet. Vanligtvis beräknas helt enkelt adressen för den värdetyp som redan finns i det boxade objektet.
InvalidCastException genereras om objektet inte är rutat som valType.
NullReferenceException genereras om objektreferensen är en null-referens.
TypeLoadException genereras om det inte går att hitta värdetypen valType . Detta identifieras vanligtvis när instruktioner fö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 unbox opcode: