OpCodes.Ldflda 欄位
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
尋找物件中的欄位位址,該位址的參考目前位於評估堆疊中。
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 推送至堆疊。 |
堆疊轉換行為依循序順序為:
對象參考 (或指標) 會推送至堆疊。
對象參考 (或指標) 會從堆疊中彈出;找到物件中指定欄位的位址。
指定欄位的位址會推送至堆疊。
指令 ldflda
會將位於物件中的欄位位址推送至堆疊。 對象必須在堆疊上做為對象參考 (類型 O
) 、Managed 指標 (類型 &
) 、非受控指標類型 (類型) 、暫時性指標 (類型 native int
*
) 或實值類型的實例。 在可驗證的程式代碼中不允許使用 Unmanaged 指標。 物件的欄位是由必須參考欄位成員的元數據標記所指定。
傳 ldflda
回的值是 managed 指標 (類型 &
) 除非物件以 Unmanaged 指標的形式推送至堆疊,在此情況下,傳回位址也是非受控指標 (類型 native int
) 。
ldflda
指令前面可以加上 或 兩個 Unaligned 和 Volatile 前置詞。
InvalidOperationException 如果物件不在正在存取的應用程式域中,則會擲回 。 無法載入不在存取應用程式域內的欄位位址。
NullReferenceException 如果物件為 Null 且字段不是靜態,則會擲回 。
MissingFieldException 如果在元資料中找不到指定的欄位,則會擲回 。 這通常會在 Microsoft 中繼語言 (MSIL) 指令轉換成機器碼時進行檢查,而不是在運行時間。
下列 Emit 方法多載可以使用 ldflda
opcode: