OpCodes.Box フィールド

定義

値型をオブジェクト参照 (O 型) に変換します。

C#
public static readonly System.Reflection.Emit.OpCode Box;

フィールド値

注釈

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

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

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

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

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

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

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

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

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

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

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

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

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

適用対象

製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0