OpCodes.Unbox Pole
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Převede krabicové vyjádření typu hodnoty na jeho unboxed form.
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
Hodnota pole
Poznámky
Následující tabulka uvádí šestnáctkový formát sestavení jazyka MSIL (Intermediate Language) a Microsoft s stručným přehledem referenčních informací:
| Formát | Formát sestavení | Description |
|---|---|---|
79 <T> |
Unbox valType |
Extrahuje data typu hodnoty z objjeho rámečku reprezentace. |
Přechodné chování zásobníku v sekvenčním pořadí je:
Odkaz na objekt se nasdílí do zásobníku.
Odkaz na objekt se rozbalí ze zásobníku a rozbalí se na ukazatel typu hodnoty.
Ukazatel typu hodnoty se vloží do zásobníku.
Typ hodnoty má ve službě Common Language Infrastructure (CLI) dvě samostatné reprezentace:
Nezpracovaný formulář použitý při vložení typu hodnoty do jiného objektu.
"Krabicový" formulář, kde jsou data v typu hodnoty zabalena (zabalena) do objektu, aby mohly existovat jako nezávislá entita.
Instrukce unbox převede odkaz na objekt (typ O), krabicové vyjádření typu hodnoty na ukazatel typu hodnoty (spravovaný ukazatel, typ &), jeho rozbalený formulář. Zadaný typ hodnoty (valType) je token metadat označující typ hodnoty obsažený v rámečku objektu.
Na rozdíl od Boxtoho, který je vyžadován k vytvoření kopie typu hodnoty pro použití v objektu, unbox není nutné kopírovat typ hodnoty z objektu. Obvykle jednoduše vypočítá adresu typu hodnoty, která je již přítomna uvnitř boxovaného objektu.
InvalidCastException je vyvolána, pokud objekt není v rámečku jako valType.
NullReferenceException je vyvolán, pokud odkaz na objekt je null odkaz.
TypeLoadException je vyvolán, pokud typ valType hodnoty nebyl nalezen. To se obvykle zjistí, když se instrukce jazyka MSIL (Microsoft Intermediate Language) převedou na nativní kód, nikoli za běhu.
Emit Následující přetížení metody může použít unbox opcode: