OpCodes.Ldind_Ref 欄位

定義

將物件參考作為類型 O (物件參考)間接載入評估堆疊。

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

欄位值

備註

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

Format 組裝格式 Description
50 ldind.ref 將位址上的 addr 物件參考以型別載入堆疊 O

堆疊的過渡行為依序為:

  1. 一個位址會被推送到堆疊上。

  2. 從堆疊中彈出該位址;位址處的物件參考會被擷取。

  3. 擷取的參考會被推送到堆疊上。

ldind.ref指令間接將物件載入指定的位址(型別native int為 、 &或 *)到堆疊中,作為型別 O

所有 ldind 指令都是指定 Ldobj 對應內建值類別的指令捷徑。

請注意,小於 4 位元組的整數值在載入評估堆疊時會被擴展為 int32 (而非 native int)。 浮點數值在載入評估堆疊時會轉換為 F 型別。

正確形成的Microsoft中間語言(MSIL)確保 ldind 指令的使用方式與指標的類型一致。

最初推入堆疊的位址必須與機器上物件的自然大小對齊,否則可能會發生 ( NullReferenceException 請參見 Unaligned 前綴指令以了解預防措施)。 所有回傳位址的 MSIL 指令(例如 LdlocaLdarga)的結果都是安全對齊的。 對於大於 1 位元組的資料型態,位元組排序會依目標 CPU 而異。 依賴位元組排序的程式碼可能無法在所有平台上運行。

NullReferenceException 若偵測到無效位址,則可拋出。

以下 Emit 方法的超載可使用操作 ldind.ref 碼:

適用於