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)組合格式,並附有簡短參考摘要:

Format 組裝格式 Description
7C <T> LDFLDA field 將指定物件中的位址 field 推送到堆疊中。

堆疊的過渡行為依序為:

  1. 一個物件參考(或指標)會被推入堆疊。

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

  3. 指定欄位的位址會被推送到堆疊上。

指令會 ldflda 將物件中欄位的位址推送到堆疊上。 物件必須以物件參考(類型 O)、受管理指標(類型 &)、非管理指標(類型 native int)、暫態指標(類型 *)或值類型的實例存在於堆疊中。 在可驗證的程式碼中,不允許使用非管理指標。 物件欄位由一個必須指向欄位成員的元資料標記來指定。

由 回 ldflda 傳的值是受管理指標(類型 &),除非物件以非管理指標形式推入堆疊,此時回傳位址也是非管理指標(類型 native int)。

ldflda指令前可加上 和 Unaligned 其中一個或兩個Volatile前綴。

InvalidOperationException 如果物件不在存取它的應用程式域內,則會拋出。 不在存取應用域內的欄位位址無法載入。

NullReferenceException 當物件為空且場非靜止時,該物件會被拋出。

MissingFieldException 若指定欄位未在元資料中,則會被拋出。 這通常在 Microsoft Intermediate Language(MSIL)指令轉換成原生程式碼時檢查,而非執行時。

以下 Emit 方法的超載可使用操作 ldflda 碼:

適用於