次の方法で共有


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) アセンブリ形式と、簡単な参照の概要を示します。

形式 アセンブリ形式 説明
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 使用できます。

適用対象