OpCodes.Ldflda 欄位

定義

尋找物件中的欄位位址,該位址的參考目前位於評估堆疊中。

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 

欄位值

備註

下表列出指令的十六進位和 Microsoft 中繼語言 (MSIL) 元件格式,以及簡短的參考摘要:

格式 元件格式 Description
7C <T> ldflda field 將 指定物件中的 位址 field 推送至堆疊。

堆疊轉換行為依循序順序為:

  1. 對象參考 (或指標) 會推送至堆疊。

  2. 對象參考 (或指標) 會從堆疊中彈出;找到物件中指定欄位的位址。

  3. 指定欄位的位址會推送至堆疊。

指令 ldflda 會將位於物件中的欄位位址推送至堆疊。 對象必須在堆疊上做為對象參考 (類型 O) 、Managed 指標 (類型 &) 、非受控指標類型 (類型) 、暫時性指標 (類型 native int*) 或實值類型的實例。 在可驗證的程式代碼中不允許使用 Unmanaged 指標。 物件的欄位是由必須參考欄位成員的元數據標記所指定。

ldflda 回的值是 managed 指標 (類型 &) 除非物件以 Unmanaged 指標的形式推送至堆疊,在此情況下,傳回位址也是非受控指標 (類型 native int) 。

ldflda指令前面可以加上 或 兩個 UnalignedVolatile 前置詞。

InvalidOperationException 如果物件不在正在存取的應用程式域中,則會擲回 。 無法載入不在存取應用程式域內的欄位位址。

NullReferenceException 如果物件為 Null 且字段不是靜態,則會擲回 。

MissingFieldException 如果在元資料中找不到指定的欄位,則會擲回 。 這通常會在 Microsoft 中繼語言 (MSIL) 指令轉換成機器碼時進行檢查,而不是在運行時間。

下列 Emit 方法多載可以使用 ldflda opcode:

適用於