OpCodes.Castclass フィールド


指定したクラスへの参照により渡されたオブジェクトをキャストしようとします。Attempts to cast an object passed by reference to the specified class.

public: static initonly System::Reflection::Emit::OpCode Castclass;
public static readonly System.Reflection.Emit.OpCode Castclass;
public static readonly System.Reflection.Emit.OpCode Castclass;
 staticval mutable Castclass : System.Reflection.Emit.OpCode
 staticval mutable Castclass : System.Reflection.Emit.OpCode
Public Shared ReadOnly Castclass As OpCode 




次の表は、命令の16進形式と Microsoft 中間言語 (MSIL) のアセンブリ形式と、簡単なリファレンスの概要を示しています。The following table lists the instruction's hexadecimal and Microsoft Intermediate Language (MSIL) assembly format, along with a brief reference summary:

形式Format アセンブリ形式Assembly Format 説明Description
74 < T >74 < T > castclass classcastclass class オブジェクトを型の新しいオブジェクトにキャスト class します。Casts an object to a new object of type class.

スタックの移行動作は、次の順序で実行されます。The stack transitional behavior, in sequential order, is:

  1. オブジェクト参照がスタックにプッシュされます。An object reference is pushed onto the stack.

  2. オブジェクト参照がスタックからポップされます。参照先のオブジェクトは、指定されたとしてキャストされ class ます。The object reference is popped from the stack; the referenced object is cast as the specified class.

  3. 成功すると、新しいオブジェクト参照がスタックにプッシュされます。If successful, a new object reference is pushed onto the stack.

命令は、 castclass スタックの一番上にあるオブジェクト参照 (型 O ) を指定されたクラスにキャストしようとします。The castclass instruction attempts to cast the object reference (type O) atop the stack to a specified class. 新しいクラスは、必要なクラスを示すメタデータトークンによって指定されます。The new class is specified by a metadata token indicating the desired class. スタックの一番上にあるオブジェクトのクラスが新しいクラスを実装していない (新しいクラスがインターフェイスであると仮定している) 場合、が新しいクラスの派生クラスではない場合は、 InvalidCastException がスローされます。If the class of the object on the top of the stack does not implement the new class (assuming the new class is an interface) and is not a derived class of the new class then an InvalidCastException is thrown. オブジェクト参照が null 参照の場合、は castclass 成功し、新しいオブジェクトを null 参照として返します。If the object reference is a null reference, castclass succeeds and returns the new object as a null reference.

InvalidCastException obj をクラスにキャストできない場合は、がスローされます。InvalidCastException is thrown if obj cannot be cast to class.

TypeLoadException クラスが見つからない場合は、がスローされます。TypeLoadException is thrown if class cannot be found. これは通常、Microsoft 中間言語 (MSIL) 命令が実行時ではなくネイティブコードに変換された場合に検出されます。This is typically detected when a Microsoft Intermediate Language (MSIL) instruction is converted to native code rather than at runtime.

次の Emit メソッドオーバーロードでは、オペコードを使用でき castclass ます。The following Emit method overload can use the castclass opcode: