OpCodes.Castclass フィールド

定義

指定したクラスへの参照によって渡されたオブジェクトのキャストを試みます。

public: static initonly System::Reflection::Emit::OpCode Castclass;
public static readonly System.Reflection.Emit.OpCode Castclass;
[System.Runtime.InteropServices.ComVisible(true)]
public static readonly System.Reflection.Emit.OpCode Castclass;
 staticval mutable Castclass : System.Reflection.Emit.OpCode
[<System.Runtime.InteropServices.ComVisible(true)>]
 staticval mutable Castclass : System.Reflection.Emit.OpCode
Public Shared ReadOnly Castclass As OpCode 

フィールド値

属性

注釈

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

フォーマット アセンブリ形式 Description
74 <T> castclass class class型の新しいオブジェクトにオブジェクトをキャストします。

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

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

  2. オブジェクト参照はスタックからポップされます。参照先オブジェクトは、指定した classとしてキャストされます。

  3. 成功した場合、新しいオブジェクト参照がスタックにプッシュされます。

castclass命令は、スタックの上にあるオブジェクト参照 (型O) を指定したクラスにキャストしようとします。 新しいクラスは、目的のクラスを示すメタデータ トークンによって指定されます。 スタックの一番上にあるオブジェクトのクラスが新しいクラスを実装せず (新しいクラスがインターフェイスであると仮定して)、新しいクラスの派生クラスでない場合は、 InvalidCastException がスローされます。 オブジェクト参照が null 参照の場合、 castclass は成功し、新しいオブジェクトを null 参照として返します。

InvalidCastException は、obj をクラスにキャストできない場合にスローされます。

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

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

適用対象