OpCodes.Leave 欄位
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
離開受保護的程式碼區域,無條件將控制權轉移到特定目標指令。
public: static initonly System::Reflection::Emit::OpCode Leave;
public static readonly System.Reflection.Emit.OpCode Leave;
staticval mutable Leave : System.Reflection.Emit.OpCode
Public Shared ReadOnly Leave As OpCode
欄位值
備註
下表列出指令的十六進位及 Microsoft 中介語言(MSIL)組合格式,並附有簡短參考摘要:
| Format | 組裝格式 | Description |
|---|---|---|
DD <int32> |
離開 target |
離開一個受保護的程式碼區域。 |
此指令未指定堆疊轉換行為。
指令 leave 無條件將控制權轉移到特定目標指令,該目標指令以從當前指令開始起的 4 位元組有號偏移量表示。
此 leave 指令與指令 br 相似,但可用於退出 try、 filter或 catch 區塊,而一般分支指令只能在此類區塊內轉移控制權。 指令 leave 會清空評估堆疊,並確保執行適當的周圍 finally 區塊。
你不能用 leave 指令退出 finally 區塊。 為了方便異常處理程式產生程式碼,從捕捉區塊內使用 leave 指令將控制權轉移到該區塊 try 內的任何指令是有效的。
若指令有一個或多個前綴代碼,控制權只能轉移至這些前綴中的第一個。
以下 Emit 方法的超載可使用操作 leave 碼: