Share via


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 Intermediate Language (MSIL) 元件格式,以及簡短的參考摘要:

格式 元件格式 Description
7B <T> ldfld field 將指定物件中的域值推送至堆疊。

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

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

  2. 對象參考 (或指標) 從堆疊快顯;找到物件中指定欄位的值。

  3. 儲存在欄位中的值會推送至堆疊。

指令 ldfld 會將位於物件中的域值推送至堆疊。 對象必須是堆疊上的對象參考 (類型 O) 、managed 指標 (類型 &) 、unmanaged 指標 (類型) 、暫時性指標 (類型 native int*) 或實值類型的實例。 在可驗證的程式代碼中不允許使用 Unmanaged 指標。 物件的欄位是由必須參考欄位成員的元數據標記所指定。 傳回型別與與欄位相關聯的類型相同。 欄位可以是實例欄位 (在此情況下,物件不得為 null 參考) 或靜態字段。

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

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

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

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

適用於