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) アセンブリ形式と、簡単なリファレンス概要を示します。

フォーマット アセンブリ形式 Description
2A Ret メソッドから返され、値を返す可能性があります。

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

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

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

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

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

ret命令を使用して、atryfiltercatch、またはfinally ブロックから制御を転送することはできません。 tryまたはcatch内から、外側のすべての例外ブロックの外側にあるLeave命令の宛先と共にret命令を使用します。 filter ブロックと finally ブロックは、コードが埋め込まれているメソッドではなく、論理的に例外処理の一部であるため、Microsoft中間言語 (MSIL) 命令Microsoft正しく生成されたメソッドは、filter または finally 内から戻りません。

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

適用対象