次の方法で共有


OpCodes.Unbox_Any フィールド

定義

命令で指定された型のボックス化された表現を、ボックス化されていないフォームに変換します。

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

フィールド値

注釈

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

形式 アセンブリ形式 形容
A5 <T> unbox.any typeTok ボックス化された表現 objからデータを抽出します。

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

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

  2. オブジェクト参照はスタックからポップされ、命令で指定された型にボックス化解除されます。

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

値型のボックス化された形式に適用すると、unbox.any 命令は (O型の) obj に含まれる値を抽出するため、unbox の後に ldobjが続くのと同じです。

参照型に適用すると、unbox.any 命令は castclasstypeTokと同じ効果を持ちます。

オペランド typeTok がジェネリック型パラメーターの場合、ランタイムの動作は、そのジェネリック型パラメーターに指定された型によって決まります。

obj がボックス化された型でない場合、InvalidCastException がスローされます。

NullReferenceException は、obj が null 参照である場合にスローされます。

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

適用対象