OpCodes.Ret 欄位

定義

從目前方法回傳,將被呼叫者的評估堆疊中(若存在)將回傳值推入呼叫者的評估堆疊。

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 退役 方法的回傳,可能回傳一個值。

堆疊的過渡行為依序為:

  1. 回傳值會從被callee的評估堆疊中彈出。

  2. 步驟 1 中獲得的回傳值會被推送到呼叫者評估堆疊中。

若返回值不存在於被callee的評估堆疊中,則不會回傳任何值(無論是被callee或caller方法都不會有堆疊轉換行為)。

目前方法的回傳值型別(若有)決定了要從堆疊頂端擷取並複製到呼叫該方法的堆疊的值型態。 目前方法的評估堆疊必須為空,僅保留要回傳的值。

ret指令無法用來將控制權從區tryfilter塊、 、 catchfinally 或區塊轉移出去。 從 trycatch內使用 Leave 目的地 ret 為所有包圍異常區塊之外的指令。 由於 filterfinally 區塊在邏輯上屬於例外處理的一部分,而非其程式碼嵌入的方法,正確產生的Microsoft中介語言(MSIL)指令不會從 filterfinally 內執行方法回傳。

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

適用於