語言

OpCodes.Unbox 欄位

定義

將某值型別的盒裝表示轉換為未開框的形式。

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,其框框表示。

堆疊的過渡行為依序為:

  1. 物件參考會被推入堆疊。

  2. 物件參考會從堆疊中彈出並解框到一個值型指標。

  3. 值型指標會被推送到堆疊上。

在通用語言基礎設施(CLI)中,一個值類型有兩種不同的表示方式:

  • 當值類型嵌入於其他物件時,會使用「原始」形式。

  • 一種「盒裝」形式,將值型別的資料包裝(盒裝)成一個物件,使其能作為獨立實體存在。

指令會 unbox 將物件參考(類型 O)轉換為值型態的框框表示,轉換為值型態指標(受管理指標,類型 &),其開箱形式。 所提供的值類型(valType)是一個元資料標記,表示盒中物件所包含的值類型。

與 Box不同,後者需要複製一個用於物件的值型別,而 unbox 則不需要從物件複製該值型別。 通常它只是計算盒子物件內已存在的值型態位址。

InvalidCastException 若物件未被框定為 valType,則 被拋出。

NullReferenceException 若物件參考為空參考,則拋出。

TypeLoadException 若找不到該值型 valType 別,則會拋出。 這通常是在 Microsoft Intermediate Language(MSIL)指令轉換成原生程式碼時被偵測到,而非執行時。

以下 Emit 方法的超載可使用操作 unbox 碼:

適用於