OpCodes.Castclass OpCodes.Castclass OpCodes.Castclass OpCodes.Castclass Field

定義

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

public: static initonly 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
Public Shared ReadOnly Castclass As OpCode 

フィールド値

属性

注釈

次の表は、命令の 16 進数と簡単なリファレンス概要と共に、Microsoft Intermediate Language (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 Intermediate Language (MSIL) 命令がランタイムではなくネイティブ コードに変換されるときに検出します。This is typically detected when a Microsoft Intermediate Language (MSIL) instruction is converted to native code rather than at runtime.

Emitメソッドのオーバー ロードを使用できる、 castclass opcode:The following Emit method overload can use the castclass opcode:

  • ILGenerator.Emit(OpCode, Type)ILGenerator.Emit(OpCode, Type)

適用対象