OpCodes.Isinst フィールド

定義

オブジェクト参照 (型 O) が特定のクラスのインスタンスであるかどうかをテストします。

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

フィールド値

注釈

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

フォーマット アセンブリ形式 Description
75 <T> isinst class オブジェクト参照が classのインスタンスであるかどうかをテストし、null 参照またはそのクラスまたはインターフェイスのインスタンスを返します。

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

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

  2. オブジェクト参照はスタックからポップされ、 class渡されたクラスのインスタンスであるかどうかを確認するためにテストされます。

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

Class は、目的のクラスを示すメタデータ トークンです。 スタックの上部にあるオブジェクトのクラスが class を実装している場合 ( class がインターフェイスの場合)、または class の派生クラスである場合 ( class が通常のクラスの場合)、 class 型にキャストされ、結果がスタックにプッシュ Castclass 呼び出されたかのようにします。 それ以外の場合は、null 参照がスタックにプッシュされます。 オブジェクト参照自体が null 参照の場合は、同様 isinst null 参照が返されます。

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

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

適用対象