次の方法で共有


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 

フィールド値

注釈

次の表に、命令の 16 進数と Microsoft Intermediate Language (MSIL) アセンブリ形式と、簡単なリファレンスの概要を示します。

形式 アセンブリ形式 説明
2A Ret メソッドからを返します。値を返す可能性があります。

スタック遷移の動作は、順番に次のようになります。

  1. 戻り値は、呼び出し先の評価スタックからポップされます。

  2. 手順 1 で取得した戻り値は、呼び出し元の評価スタックにプッシュされます。

戻り値が呼び出し先の評価スタックに存在しない場合、値は返されません (呼び出し先メソッドまたは呼び出し元メソッドのスタック遷移動作はありません)。

現在のメソッドの戻り値の型 (存在する場合) は、スタックの先頭からフェッチされ、現在のメソッドを呼び出したメソッドのスタックにコピーされる値の型を決定します。 現在のメソッドの評価スタックは、返される値を除いて空である必要があります。

命令をret使用して、または finally ブロックから制御をtryfiltercatch転送することはできません。 または catchtryから、 命令をLeave、外側のすべての例外ブロックの外側にある命令のret宛先と共に使用します。 filterブロックと finally ブロックは論理的には例外処理の一部であり、コードが埋め込まれているメソッドではないので、正しく生成された Microsoft Intermediate Language (MSIL) 命令では、 または finallyfilterからメソッドを返す操作は実行されません。

Emit のメソッド オーバーロードでは、オペコードを ret 使用できます。

適用対象