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 

フィールド値

OpCode

注釈

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

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

スタック遷移動作は、順番に次の順序で行います。

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

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

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

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

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

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

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

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

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

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

適用対象