다음을 통해 공유


OpCodes.Unbox 필드

boxed로 표시되는 값 형식을 unboxed 형식으로 변환합니다.

네임스페이스: System.Reflection.Emit
어셈블리: mscorlib(mscorlib.dll)

구문

‘선언
Public Shared ReadOnly Unbox As OpCode
‘사용 방법
Dim value As OpCode

value = OpCodes.Unbox
public static readonly OpCode Unbox
public:
static initonly OpCode Unbox
public static final OpCode Unbox
public static final var Unbox : OpCode

설명

다음 표에서는 명령의 16진수 및 MSIL(Microsoft Intermediate Language) 어셈블리 형식을 간단한 설명과 함께 나열합니다.

형식

어셈블리 형식

설명

79 < T >

unbox valType

obj에서 boxed로 표시된 값 형식을 추출합니다.

다음과 같이 순차적으로 스택 전환 동작이 발생합니다.

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

  2. 개체 참조가 스택에서 팝되고 값 형식 포인터에 대해 unboxed로 표시됩니다.

  3. 값 형식 포인터가 스택으로 푸시됩니다.

CLI(공용 언어 인프라) 내에 서로 다른 두 개의 값 형식 표현이 있습니다.

  • 값 형식이 다른 개체에 포함될 경우 사용되는 'raw' 형식입니다.

  • 값 형식의 데이터가 개체로 래핑되어(boxed) 독립 엔터티로 존재할 수 있는 'boxed' 형식입니다.

unbox 명령은 값 형식이 boxed로 표시된 개체 참조(O 형식)를 unboxed 형식인 값 형식 포인터(관리되는 포인터, & 형식)로 변환합니다. 주어진 값 형식(valType)은 boxed 개체에 포함된 값 형식의 형식을 나타내는 메타데이터 토큰입니다.

개체에서 사용하기 위해 값 형식을 복사해야 하는 Box와 달리 unbox를 사용할 경우에는 개체에서 값 형식을 복사할 필요가 없습니다. 이 코드는 대개 boxed 개체 안에 있는 값 형식의 주소를 간단하게 계산합니다.

개체가 valType으로 boxed되지 않으면 InvalidCastException이 throw됩니다.

개체 참조가 null 참조인 경우 NullReferenceException이 throw됩니다.

valType 값 형식을 찾지 못하면 TypeLoadException이 throw됩니다. 일반적으로 런타임에서가 아니라 MSIL(Microsoft Intermediate Language) 명령이 네이티브 코드로 변환될 때 이런 경우가 발생합니다.

다음 Emit 메서드 오버로드는 unbox 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에서 지원

참고 항목

참조

OpCodes 클래스
OpCodes 멤버
System.Reflection.Emit 네임스페이스