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中間言語 (MSIL) アセンブリ形式と、簡単なリファレンス概要を示します。

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

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

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

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

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

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

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

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

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

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

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

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

適用対象