OpCodes.Unbox フィールド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
値型のボックス化された表現を、ボックス化されていないフォームに変換します。
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) アセンブリ形式と、簡単なリファレンス概要を示します。
| フォーマット | アセンブリ形式 | Description |
|---|---|---|
79 <T> |
Unbox valType |
ボックス化された表現 objから値型データを抽出します。 |
スタック遷移の動作は、順番に次のようになります。
オブジェクト参照がスタックにプッシュされます。
オブジェクト参照はスタックからポップされ、値型ポインターにボックス化解除されます。
値型ポインターがスタックにプッシュされます。
値型には、共通言語インフラストラクチャ (CLI) 内に 2 つの個別の表現があります。
値型が別のオブジェクト内に埋め込まれている場合に使用される 'raw' フォーム。
"ボックス化" フォーム。値型のデータがオブジェクトにラップ (ボックス化) され、独立したエンティティとして存在できます。
unbox命令は、値型のボックス化された表現であるオブジェクト参照 (型O) を、ボックス化されていないフォームの値型ポインター (マネージド ポインター、型&) に変換します。 指定された値型 (valType) は、ボックス化されたオブジェクトに含まれる値型の型を示すメタデータ トークンです。
オブジェクトで使用する値型のコピーを作成するために必要な Boxとは異なり、 unbox はオブジェクトから値型をコピーする必要はありません。 通常は、ボックス化されたオブジェクト内に既に存在する値型のアドレスを計算するだけです。
InvalidCastException は、オブジェクトが valTypeとしてボックス化されていない場合にスローされます。
NullReferenceException は、オブジェクト参照が null 参照の場合にスローされます。
TypeLoadException は、値型 valType が見つからない場合にスローされます。 これは通常、Microsoft Intermediate Language (MSIL) 命令が実行時ではなくネイティブ コードに変換されるときに検出されます。
次の Emit メソッドオーバーロードでは、 unbox オペコードを使用できます。