다음을 통해 공유


OpCodes.Ldflda 필드

현재 계산 스택에 참조가 있는 개체에서 필드의 주소를 찾습니다.

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

구문

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

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

설명

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

형식

어셈블리 형식

설명

7C < T >

ldflda field

지정된 개체에 있는 field의 주소를 스택으로 푸시합니다.

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

  1. 개체 참조(또는 포인터)가 스택으로 푸시됩니다.

  2. 스택에서 개체 참조 또는 포인터가 팝되고 개체에서 지정된 필드의 주소가 발견됩니다.

  3. 필드에 저장된 주소가 스택으로 푸시됩니다.

ldflda 명령이 개체에 있는 필드의 주소를 스택으로 푸시합니다. 개체는 개체 참조(O 형식), 관리되는 포인터(& 형식), 관리되지 않는 포인터(natural int 형식), 임시 포인터(* 형식) 또는 값 형식의 인스턴스로 스택에 있어야 합니다. 안정형 코드에서는 관리되지 않는 포인터의 사용이 허용되지 않습니다. 개체의 필드는 필드 멤버를 참조하는 메타데이터 토큰으로 지정됩니다.

반환 주소가 관리되지 않는 포인터(natural int 형식)인 경우 개체가 관리되지 않는 포인터로 스택에 푸시되지 않으면 ldflda가 반환하는 값이 관리되는 포인터(& 형식)입니다.

ldflda 명령 앞에 UnalignedVolatile 접두사 중 하나나 둘 모두를 배치할 수 있습니다.

액세스하고 있는 응용 프로그램 도메인 내에 개체가 있지 않으면 InvalidOperationException이 throw됩니다. 액세스하고 있는 응용 프로그램 도메인 밖에 있는 필드 주소는 로드되지 않습니다.

개체가 null이고 필드가 정적이 아니면 NullReferenceException이 throw됩니다.

지정된 필드를 메타데이터에서 찾을 수 없으면 MissingFieldException이 throw됩니다. 일반적으로 런타임에서가 아니라 MSIL(Microsoft Intermediate Language) 명령이 네이티브 코드로 변환될 때 이런 경우가 확인됩니다.

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

  • ILGenerator.Emit(OpCode, FieldInfo)

플랫폼

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 네임스페이스