OpCodes.Castclass フィールド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定したクラスへの参照によって渡されたオブジェクトのキャストを試みます。
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型の新しいオブジェクトにオブジェクトをキャストします。 |
スタック遷移の動作は、順番に次のようになります。
オブジェクト参照がスタックにプッシュされます。
オブジェクト参照はスタックからポップされます。参照先オブジェクトは、指定した
classとしてキャストされます。成功した場合、新しいオブジェクト参照がスタックにプッシュされます。
castclass命令は、スタックの上にあるオブジェクト参照 (型O) を指定したクラスにキャストしようとします。 新しいクラスは、目的のクラスを示すメタデータ トークンによって指定されます。 スタックの一番上にあるオブジェクトのクラスが新しいクラスを実装せず (新しいクラスがインターフェイスであると仮定して)、新しいクラスの派生クラスでない場合は、 InvalidCastException がスローされます。 オブジェクト参照が null 参照の場合、 castclass は成功し、新しいオブジェクトを null 参照として返します。
InvalidCastException は、obj をクラスにキャストできない場合にスローされます。
TypeLoadException は、クラスが見つからない場合にスローされます。 これは通常、Microsoft Intermediate Language (MSIL) 命令が実行時ではなくネイティブ コードに変換されるときに検出されます。
次の Emit メソッドオーバーロードでは、 castclass オペコードを使用できます。