OpCodes.Ret 欄位
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
從目前方法回傳,將被呼叫者的評估堆疊中(若存在)將回傳值推入呼叫者的評估堆疊。
public: static initonly System::Reflection::Emit::OpCode Ret;
public static readonly System.Reflection.Emit.OpCode Ret;
staticval mutable Ret : System.Reflection.Emit.OpCode
Public Shared ReadOnly Ret As OpCode
欄位值
備註
下表列出指令的十六進位及 Microsoft 中介語言(MSIL)組合格式,並附有簡短參考摘要:
| Format | 組裝格式 | Description |
|---|---|---|
| 2A | 退役 | 方法的回傳,可能回傳一個值。 |
堆疊的過渡行為依序為:
回傳值會從被callee的評估堆疊中彈出。
步驟 1 中獲得的回傳值會被推送到呼叫者評估堆疊中。
若返回值不存在於被callee的評估堆疊中,則不會回傳任何值(無論是被callee或caller方法都不會有堆疊轉換行為)。
目前方法的回傳值型別(若有)決定了要從堆疊頂端擷取並複製到呼叫該方法的堆疊的值型態。 目前方法的評估堆疊必須為空,僅保留要回傳的值。
ret指令無法用來將控制權從區tryfilter塊、 、 catchfinally 或區塊轉移出去。 從 try 或 catch內使用 Leave 目的地 ret 為所有包圍異常區塊之外的指令。 由於 filter 和 finally 區塊在邏輯上屬於例外處理的一部分,而非其程式碼嵌入的方法,正確產生的Microsoft中介語言(MSIL)指令不會從 filter 或 finally 內執行方法回傳。
以下 Emit 方法的超載可使用操作 ret 碼: