OpCodes.Unbox 欄位
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將實值類型的 boxed 表示轉換成它的 unboxed 形式。
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
欄位值
備註
下表列出指令的十六進位和 Microsoft 中繼語言 (MSIL) 元件格式,以及簡短的參考摘要:
格式 | 元件格式 | Description |
---|---|---|
79 <T > |
unbox valType |
從 obj 擷取實值型別數據,其 Boxed 表示法。 |
堆疊轉換行為依循序順序為:
對象參考會推送至堆疊。
對象參考會從堆疊快顯,並解壓縮至實值型別指標。
實值型別指標會推送至堆疊。
實值類型在 Common Language Infrastructure (CLI) 中有兩個不同的表示法:
當實值型別內嵌在另一個物件內時,所使用的 'raw' 表單。
'boxed' 窗體,其中實值型別中的數據會包裝在 (方塊化) 到 物件中,讓它可以以獨立實體的形式存在。
指令 unbox
會將對象參考 (類型) 、實值型 O
別的 Boxed 表示法,轉換為 managed 指標 (managed 指標、類型 &
) 、其未收件匣形式。 提供的實值型別 () valType
是元數據標記,指出 Boxed 物件中包含的實值型別類型類型。
不同於 Box,需要複製實值型別的複本,才能在物件中使用, unbox
不需要從 對象複製實值型別。 一般而言,它只會計算已存在於 Boxed 物件內的實值型別位址。
InvalidCastException 如果物件不是 Boxed 做為 valType
,則會擲回 。
NullReferenceException 如果物件參考為 Null 參考,則會擲回 。
TypeLoadException 如果找不到實值型別 valType
,則會擲回 。 當 Microsoft Intermediate Language (MSIL) 指令轉換成機器碼,而不是在運行時間時,通常會偵測到此情況。
下列 Emit 方法多載可以使用 unbox
opcode: