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:

適用於