OpCodes.Ldfld 필드

정의

참조가 현재 평가 스택에 있는 개체의 필드 값을 찾습니다.

public: static initonly System::Reflection::Emit::OpCode Ldfld;
public static readonly System.Reflection.Emit.OpCode Ldfld;
 staticval mutable Ldfld : System.Reflection.Emit.OpCode
Public Shared ReadOnly Ldfld As OpCode 

필드 값

설명

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

포맷 어셈블리 형식 Description
7b <T> ldfld field 지정된 개체의 필드 값을 스택에 푸시합니다.

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

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

  2. 개체 참조(또는 포인터)가 스택에서 팝됩니다. 개체에서 지정된 필드의 값을 찾습니다.

  3. 필드에 저장된 값이 스택으로 푸시됩니다.

ldfld 명령은 개체에 있는 필드의 값을 스택에 푸시합니다. 개체는 개체 참조(형식), 관리되는 포인터(형식O), 관리되지 않는 포인터(형식&), 임시 포인터(형식native int*) 또는 값 형식의 인스턴스로 스택에 있어야 합니다. 관리되지 않는 포인터의 사용은 확인 가능한 코드에서 허용되지 않습니다. 개체의 필드는 필드 멤버를 참조해야 하는 메타데이터 토큰으로 지정됩니다. 반환 형식은 필드와 연결된 형식과 동일합니다. 필드는 인스턴스 필드(이 경우 개체가 null 참조가 아니어야 하는 경우) 또는 정적 필드일 수 있습니다.

명령 앞에는 ldfld 접두사 또는 접두사 중 하나 또는 둘 다 UnalignedVolatile 앞에 올 수 있습니다.

NullReferenceException 는 개체가 null이고 필드가 정적이지 않은 경우 throw됩니다.

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

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

적용 대상