OpCodes.Ldind_Ref 欄位
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將物件參考作為類型 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 |
堆疊的過渡行為依序為:
一個位址會被推送到堆疊上。
從堆疊中彈出該位址;位址處的物件參考會被擷取。
擷取的參考會被推送到堆疊上。
ldind.ref指令間接將物件載入指定的位址(型別native int為 、 &或 *)到堆疊中,作為型別 O。
所有 ldind 指令都是指定 Ldobj 對應內建值類別的指令捷徑。
請注意,小於 4 位元組的整數值在載入評估堆疊時會被擴展為 int32 (而非 native int)。 浮點數值在載入評估堆疊時會轉換為 F 型別。
正確形成的Microsoft中間語言(MSIL)確保 ldind 指令的使用方式與指標的類型一致。
最初推入堆疊的位址必須與機器上物件的自然大小對齊,否則可能會發生 ( NullReferenceException 請參見 Unaligned 前綴指令以了解預防措施)。 所有回傳位址的 MSIL 指令(例如 Ldloca 和 Ldarga)的結果都是安全對齊的。 對於大於 1 位元組的資料型態,位元組排序會依目標 CPU 而異。 依賴位元組排序的程式碼可能無法在所有平台上運行。
NullReferenceException 若偵測到無效位址,則可拋出。
以下 Emit 方法的超載可使用操作 ldind.ref 碼: