OpCodes.Unbox 欄位
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將某值型別的盒裝表示轉換為未開框的形式。
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)組合格式,並附有簡短參考摘要:
| Format | 組裝格式 | Description |
|---|---|---|
79 <T> |
開箱 valType |
從中擷取值型態資料 obj,其框框表示。 |
堆疊的過渡行為依序為:
物件參考會被推入堆疊。
物件參考會從堆疊中彈出並解框到一個值型指標。
值型指標會被推送到堆疊上。
在通用語言基礎設施(CLI)中,一個值類型有兩種不同的表示方式:
當值類型嵌入於其他物件時,會使用「原始」形式。
一種「盒裝」形式,將值型別的資料包裝(盒裝)成一個物件,使其能作為獨立實體存在。
指令會 unbox 將物件參考(類型 O)轉換為值型態的框框表示,轉換為值型態指標(受管理指標,類型 &),其開箱形式。 所提供的值類型(valType)是一個元資料標記,表示盒中物件所包含的值類型。
與 Box不同,後者需要複製一個用於物件的值型別,而 unbox 則不需要從物件複製該值型別。 通常它只是計算盒子物件內已存在的值型態位址。
InvalidCastException 若物件未被框定為 valType,則 被拋出。
NullReferenceException 若物件參考為空參考,則拋出。
TypeLoadException 若找不到該值型 valType 別,則會拋出。 這通常是在 Microsoft Intermediate Language(MSIL)指令轉換成原生程式碼時被偵測到,而非執行時。
以下 Emit 方法的超載可使用操作 unbox 碼: