다음을 통해 공유


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*) 또는 값 형식의 instance 스택에 있어야 합니다. 비관리형 포인터의 사용은 확인 가능한 코드에서 허용되지 않습니다. 개체의 필드는 필드 멤버를 참조해야 하는 메타데이터 토큰으로 지정됩니다. 반환 형식은 필드와 연결된 형식과 동일합니다. 필드는 instance 필드이거나(이 경우 개체가 null 참조가 아니어야 합니다) 또는 정적 필드일 수 있습니다.

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

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

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

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

적용 대상