次の方法で共有


メソッド呼び出しの戻り値の調査

[自動変数] ウィンドウでは、メソッド呼び出しのステップ オーバーまたはステップ アウトを実行するとき、.NET フレームワークと C++ のメソッドの戻り値を調べることができます。 この機能が便利なのは、メソッド呼び出しの結果がローカル変数に格納されないときです。たとえば、メソッドが別のメソッドのパラメーターまたは戻り値として使用されるときなどです。

内容

[自動変数] ウィンドウでメソッドの戻り値を表示する

[イミディエイト] および [ウォッチ] ウィンドウで .NET Framework のメソッドの戻り値を表示する

[自動変数] ウィンドウでメソッドの戻り値を表示する

  1. C# または C++ のコンソール アプリケーションを作成します。

  2. C# の Main メソッドまたは C++ の _tmain メソッドを次のコードに置き換えます。

    //static void Main(string[] args) {
        Method1();         // 1. Set a breakpoint here
                           // 2. Then step into Method1 
        int y = Method2(); // 3. Set a breakpoint here
                           // 4. Then step into Method2 
    
    static void Method1(){
        // 1. Step over the following line
        int result = Multiply(FourTimes(Five()), Six());
        // 2. Then view the return values in the Autos window
    }
    
    static int Method2(){
        // 1. Step over the following line
        return Five();
        // 2. Then view the return values in the Autos window
    }
    
    static int Multiply(int x, int y){
        return x * y;
    }
    
    static int FourTimes(int x){
        return 4 * x;
    }
    
    static int Five(){
        return 5;
    }
    
    static int Six(){
        return 6;
    }
    
    void Method1();
    int Method2();
    int Multiply(int x, int y);
    int FourTimes(int x);
    int Five();
    int Six();
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        Method1();            // 1. Set a breakpoint here
                              // 2. Then step into Method1 
        int x = Method2();    // 3. Set a breakpoint here
                              // 4. Then step into Method2 
    }
    
    void Method1(){
        // 1. Step over the following line
        int result = Multiply(FourTimes(Five()), Six());
        // 2. Then view the return values in the Autos window
    }
    
    int Method2(){
        // 1. Step over the following line
        return Five();
        // 2. Then view the return values in the Autos window
    }
    
    int Multiply(int x, int y){
        return x * y;
    }
    
    int FourTimes(int x){
        return 4 * x;
    }
    
    int Five(){
        return Six();
    }
    
    int Six(){
        return 6;
    }
    
  3. main メソッド内の Method1 と Method2 の呼び出しにブレークポイントを設定します。

  4. [デバッグ] メニューの [デバッグ開始] をクリックしてデバッグを開始し (キーボード: F5)、Method1 の呼び出しで中断します。

  5. [デバッグ][ステップ イン] の順にクリックし (キーボード: F10)、「Method1」と入力します。

  6. [デバッグ][ステップ オーバー] の順にクリックし (キーボード: F11)、Method1 の最初の行をステップ オーバーします。

  7. [自動変数] ウィンドウで、Multiply、FourTimes、Five、Six のメソッドの戻り値とそれらのアイコンが表示されていることに注意してください ([自動変数] ウィンドウを開くには、[デバッグ][Windows][自動変数] の順にクリックするか、Ctrl + Alt + V、A キーを押す)。

    [自動変数] ウィンドウに表示されている、メソッドの戻り値

  8. [デバッグ][続行] の順にクリックして (キーボード: F5)、Method2 の呼び出しまで実行を続けます。

  9. Method2 にステップ インします。

  10. return ステートメントをステップ オーバーします。

  11. [自動変数] ウィンドウに [Five] メソッドの戻り値 (Method2 によって直接返された値) が表示されていることに注意してください。

    [自動変数] ウィンドウに表示されている戻り値

[イミディエイト] および [ウォッチ] ウィンドウで .NET Framework のメソッドの戻り値を表示する

.NET Framework のメソッド呼び出しの戻り値を調べることもできます。そのためには、メソッド呼び出しのステップ オーバーまたはステップ アウトの後で、[イミディエイト] ウィンドウまたは [ウォッチ] ウィンドウで「$ReturnValue」と入力します。 [イミディエイト] ウィンドウを開くには、[デバッグ][Windows][イミディエイト] の順にクリックします (キーボード: Ctrl + Alt + I)。