OpCodes.Box 欄位

定義

將實值型別 (Value Type) 轉換成物件參考 (型別 O)。

public: static initonly System::Reflection::Emit::OpCode Box;
public static readonly System.Reflection.Emit.OpCode Box;
 staticval mutable Box : System.Reflection.Emit.OpCode
Public Shared ReadOnly Box As OpCode 

欄位值

備註

下表列出指令的十六進位和 Microsoft 中繼語言 (MSIL) 元件格式,以及簡短的參考摘要:

格式 元件格式 Description
8C <T> valTypeToken 將值型別 () 中指定的 valTypeToken 型別轉換為 true 對象參考。

堆疊轉換行為依循序順序為:

  1. 實值類型會推送至堆疊。

  2. 值類型會從堆疊中彈出;會 box 執行作業。

  3. 產生的「Boxed」實值型別的對象參考會推送至堆疊。

實值類型在 Common Language Infrastructure (CLI) 中有兩個不同的表示法:

  • 當實值型別內嵌在另一個物件或堆疊上時,所使用的 'raw' 窗體。

  • 'boxed' 窗體,其中實值型別中的數據會包裝在 (方塊化) 到 物件中,讓它可以以獨立實體的形式存在。

指令 box 會將 'raw' (unboxed) 實值型別轉換成對象參考 (類型 O) 。 這可藉由建立新的物件,並將值型別的數據複製到新配置的 物件來完成。 valTypeToken 是元數據標記,表示堆疊上實值型別的類型。

OutOfMemoryException 如果記憶體不足而無法滿足要求,則會擲回 。

TypeLoadException 如果找不到 類別,則會擲回 。 當 Microsoft Intermediate Language (MSIL) 轉換成機器碼,而不是運行時間時,通常會偵測到此狀況。

下列 Emit 方法多載可以使用 box opcode:

適用於