OpCodes.Ldflda 필드

정의

현재 계산 스택에 참조가 있는 개체에서 필드의 주소를 찾습니다.Finds the address of a field in the object whose reference is currently on the evaluation stack.

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

필드 값

설명

다음 표에서 명령의 16 진수 및 간략 한 참조 요약 정보와 함께 언어 MSIL (Microsoft Intermediate) 어셈블리 형식:The following table lists the instruction's hexadecimal and Microsoft Intermediate Language (MSIL) assembly format, along with a brief reference summary:

서식Format 어셈블리 형식Assembly Format 설명Description
7C < T >7C < T > ldflda fieldldflda field 주소의 푸시 field 스택에 지정한 개체입니다.Pushes the address of field in a specified object onto the stack.

스택 전환 동작에 순차적으로 다음과 같습니다.The stack transitional behavior, in sequential order, is:

  1. 개체 참조 (또는 포인터)를 스택에 푸시됩니다.An object reference (or pointer) is pushed onto the stack.

  2. 개체 참조 (또는 포인터)이 스택에서 팝 합니다. 개체에 지정된 된 필드의 주소를 찾을 수 있습니다.The object reference (or pointer) is popped from the stack; the address of the specified field in the object is found.

  3. 지정된 된 필드의 주소를 스택으로 푸시됩니다.The address of the specified field is pushed onto the stack.

ldflda 스택에 개체에 있는 필드의 주소를 푸시합니다.The ldflda instruction pushes the address of a field located in an object onto the stack. 개체는 개체 참조 스택에 있어야 합니다. (유형 O)를 관리 되는 포인터 (형식 &), 관리 되지 않는 포인터를 (형식 native int), 임시 포인터 (형식 *), 또는 값 형식의 인스턴스.The object must be on the stack as an object reference (type O), a managed pointer (type &), an unmanaged pointer (type native int), a transient pointer (type *), or an instance of a value type. 관리 되지 않는 포인터를 사용 검증할 수 있는 코드에서 허용 되지 않습니다.The use of an unmanaged pointer is not permitted in verifiable code. 개체의 필드를 필드 멤버를 참조 하는 메타 데이터 토큰에 의해 지정 됩니다.The object's field is specified by a metadata token that must refer to a field member.

반환 된 값 ldflda 관리 되는 포인터 (형식 &)로 관리 되지 않는 포인터를 스택에 밀어넣어 개체, 경우에서 반송 주소 이기도 관리 되지 않는 포인터를 (형식 native int).The value returned by ldflda is a managed pointer (type &) unless the object is pushed onto the stack as an unmanaged pointer, in which case the return address is also an unmanaged pointer (type native int).

합니다 ldflda 명령 중 하나 또는 모두 뒤에 올 수 있습니다 합니다 UnalignedVolatile 접두사입니다.The ldflda instruction can be preceded by either or both of the Unaligned and Volatile prefixes.

InvalidOperationException 개체를 액세스 하는 애플리케이션 도메인 내에서 없으면 throw 됩니다.InvalidOperationException is thrown if the object is not within the application domain from which it is being accessed. 에 액세스 하는 애플리케이션 도메인 내에서 포함 되지 않는 필드의 주소를 로드할 수 없습니다.The address of a field that is not inside the accessing application domain cannot be loaded.

NullReferenceException 개체가 null 인 고 필드가 static이 아닌 경우 throw 됩니다.NullReferenceException is thrown if the object is null and the field is not static.

MissingFieldException 지정된 된 필드 메타 데이터에 없는 경우 throw 됩니다.MissingFieldException is thrown if the specified field is not found in the metadata. 이 값은 런타임에 하지 언어 MSIL (Microsoft Intermediate) 명령이 네이티브 코드로 변환 될 때 일반적으로 검사 됩니다.This is typically checked when Microsoft Intermediate Language (MSIL) instructions are converted to native code, not at run time.

다음 Emit 메서드 오버 로드를 사용할 수는 ldflda opcode:The following Emit method overload can use the ldflda opcode:

  • ILGenerator.Emit(OpCode, FieldInfo)ILGenerator.Emit(OpCode, FieldInfo)

적용 대상