次の方法で共有


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

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

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

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

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

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

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

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

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

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

適用対象