OpCodes.Castclass 필드
참조로 전달된 개체를 지정된 클래스로 캐스팅하려고 합니다.
네임스페이스: System.Reflection.Emit
어셈블리: mscorlib(mscorlib.dll)
구문
‘선언
<ComVisibleAttribute(True)> _
Public Shared ReadOnly Castclass As OpCode
‘사용 방법
Dim value As OpCode
value = OpCodes.Castclass
[ComVisibleAttribute(true)]
public static readonly OpCode Castclass
[ComVisibleAttribute(true)]
public:
static initonly OpCode Castclass
/** @attribute ComVisibleAttribute(true) */
public static final OpCode Castclass
ComVisibleAttribute(true)
public static final var Castclass : OpCode
설명
다음 표에서는 명령의 16진수 및 MSIL(Microsoft Intermediate Language) 어셈블리 형식을 간단한 설명과 함께 나열합니다.
형식 |
어셈블리 형식 |
설명 |
---|---|---|
74 < T > |
castclass class |
개체를 class 형식의 새 개체로 캐스팅합니다. |
다음과 같이 순차적으로 스택 전환 동작이 발생합니다.
개체 참조가 스택으로 푸시됩니다.
스택에서 개체 참조가 팝되고 참조되는 개체가 지정된 class로 캐스팅됩니다.
이 작업이 올바르게 수행되면 새 개체 참조가 스택으로 푸시됩니다.
castclass 명령이 스택 맨 위에 있는 개체 참조(O 형식)를 지정된 클래스로 캐스팅하려고 시도합니다. 원하는 클래스를 나타내는 메타데이터 토큰으로 새 클래스를 지정합니다. 스택 맨 위에 있는 개체의 클래스가 새 클래스(인터페이스라고 가정)를 구현하지 않고 새 클래스에서 파생된 클래스가 아닌 경우 InvalidCastException이 throw됩니다. 개체 참조가 null 참조인 경우 castclass가 계속 실행되고 새 개체를 null 참조로 반환합니다.
obj가 클래스로 캐스팅될 수 없으면 InvalidCastException이 throw됩니다.
클래스를 찾지 못하면 TypeLoadException이 throw됩니다. 일반적으로 런타임에서가 아니라 MSIL(Microsoft Intermediate Language) 명령이 네이티브 코드로 변환될 때 이런 경우가 발생합니다.
다음 Emit 메서드 오버로드는 castclass opcode를 사용할 수 있습니다.
- ILGenerator.Emit(OpCode, Type)
플랫폼
Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.
버전 정보
.NET Framework
2.0, 1.1, 1.0에서 지원