OpCodes.Unbox フィールド

定義

値型のボックス化変換された形式をボックス化が解除された形式に変換します。

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

フィールド値

注釈

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

形式 アセンブリ形式 説明
79 <T> Unbox valType ボックス化された表現から obj値型データを抽出します。

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

  1. オブジェクト参照がスタックにプッシュされます。

  2. オブジェクト参照はスタックからポップされ、値型ポインターにボックス化解除されます。

  3. 値型ポインターがスタックにプッシュされます。

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

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

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

命令は unbox 、オブジェクト参照 (型 O) (値型のボックス化された表現) を値型ポインター (マネージド ポインター、型 &) に変換し、ボックス化解除されたフォームに変換します。 指定された値の型 (valType) は、ボックス化されたオブジェクトに含まれる値型の型を示すメタデータ トークンです。

オブジェクトで使用するために値型のコピーを作成するために必要な とは異なり Boxunbox オブジェクトから値型をコピーする必要はありません。 通常、ボックス化されたオブジェクト内に既に存在する値型のアドレスを計算するだけです。

InvalidCastException オブジェクトが として valTypeボックス化されていない場合は、 がスローされます。

NullReferenceException は、オブジェクト参照が null 参照である場合にスローされます。

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

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

適用対象