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 

フィールド値

OpCode
属性

注釈

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

形式 アセンブリ形式 説明
74 < T > castclass class オブジェクトを型の新しいオブジェクトにキャストします class

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

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

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

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

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

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

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

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

適用対象