다음을 통해 공유


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진수 및 MSIL(Microsoft Intermediate Language) 어셈블리 형식을 나열합니다.

서식 어셈블리 형식 Description
74 <T> castclass class 개체를 형식 class의 새 개체로 캐스팅합니다.

스택 전환 동작은 순차적으로 다음과 같습니다.

  1. 개체 참조가 스택에 푸시됩니다.

  2. 개체 참조가 스택에서 튀어나온 경우 참조된 개체가 지정된 로 캐스팅됩니다 class.

  3. 성공하면 새 개체 참조가 스택에 푸시됩니다.

명령은 castclass 스택 위에 있는 개체 참조(형식 O)를 지정된 클래스로 캐스팅하려고 시도합니다. 새 클래스는 원하는 클래스를 나타내는 메타데이터 토큰으로 지정됩니다. 스택 맨 위에 있는 개체의 클래스가 새 클래스를 구현하지 않고(새 클래스가 인터페이스라고 가정) 새 클래스의 파생 클래스가 아닌 경우 가 InvalidCastException throw됩니다. 개체 참조가 null 참조 castclass 이면 가 성공하고 새 개체를 null 참조로 반환합니다.

InvalidCastException obj를 클래스로 캐스팅할 수 없는 경우 throw됩니다.

TypeLoadException 클래스를 찾을 수 없는 경우 throw됩니다. 일반적으로 MSIL(Microsoft Intermediate Language) 명령이 런타임이 아닌 네이티브 코드로 변환될 때 검색됩니다.

다음 Emit 메서드 오버로드는 opcode를 castclass 사용할 수 있습니다.

적용 대상