OpCodes.Ldfld 欄位

定義

尋找物件中某欄位的值,該欄位目前在評估堆疊上。

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

欄位值

備註

下表列出指令的十六進位及 Microsoft 中介語言(MSIL)組合格式,並附有簡短參考摘要:

Format 組裝格式 Description
7B <T> LDFLD field 將指定物件中欄位的值推入堆疊。

堆疊的過渡行為依序為:

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

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

  3. 儲存在欄位中的數值會被推送到堆疊上。

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

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

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

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

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

適用於