OpCodes.Box フィールド

定義

値型をオブジェクト参照 (型 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 

フィールド値

注釈

次の表に、命令の 16 進数および Microsoft Intermediate Language (MSIL) アセンブリ形式と、簡単なリファレンス概要を示します。

フォーマット アセンブリ形式 Description
8C <T> ボックス valTypeToken 値型 ( valTypeToken で指定された型) を true オブジェクト参照に変換します。

スタック遷移の動作は、順番に次のようになります。

  1. 値型がスタックにプッシュされます。

  2. 値型はスタックからポップされます。 box 操作が実行されます。

  3. 結果の "ボックス化された" 値型へのオブジェクト参照がスタックにプッシュされます。

値型には、共通言語インフラストラクチャ (CLI) 内に 2 つの個別の表現があります。

  • 値型が別のオブジェクトまたはスタックに埋め込まれている場合に使用される 'raw' フォーム。

  • "ボックス化" フォーム。値型のデータがオブジェクトにラップ (ボックス化) され、独立したエンティティとして存在できます。

box命令は、'raw' (ボックス化されていない) 値型をオブジェクト参照 (型O) に変換します。 これを行うには、新しいオブジェクトを作成し、値型から新しく割り当てられたオブジェクトにデータをコピーします。 valTypeToken は、スタック上の値型の型を示すメタデータ トークンです。

OutOfMemoryException は、要求を満たすのに十分なメモリがない場合にスローされます。

TypeLoadException は、クラスが見つからない場合にスローされます。 これは通常、Microsoft Intermediate Language (MSIL) が実行時ではなくネイティブ コードに変換されるときに検出されます。

次の Emit メソッドオーバーロードでは、 box オペコードを使用できます。

適用対象