3

このようなコード行があります

return foo(barIn);

行にブレークポイントを設定した場合、fooにステップインせずにfoo(barIn)の戻り値を検査できますか?コードを次のように書き直すことができます

var result = foo(barIn);
return result;

しかし、私は、現在のコードを書き直したり、離れたりしないという便利さを望んでいます。

==========編集==========

最初の4つの答えは興味深いです(ありがとう)が、実際には私の質問に答えていません。もっと明確にしようと思います。

この方法では

public string functionA()
{
    return functionB();
}

Visual Studio 2012には、「returnfunctionB();」という行にブレークポイントを配置する方法がありますか。functionBにステップインしたり、functionBを再実行したり、functionAを書き換えたりせずに、functionBの戻り値を調べますか?

4

4 に答える 4

1

いいえ、この正確な動作を満たすことはできません。Visual Studioでのデバッグ中に戻る前に、戻り値を確認できますかを参照してください。あなたが得ることができる最も近いものは:

がべき等である場合foo(つまり、副作用がない場合)、に時計を追加できますfoo(barIn)

副作用がある場合return、ブレークポイントをに設定してから、関数のステップアウト(デフォルトではShift+ F11)を実行し、関数の結果が割り当てられている変数を調べます。

于 2012-07-10T14:46:05.993 に答える
0

いつでもを使用F11して関数にステップインしF10、関数を調べて何が返されるかを確認できます。

于 2012-07-10T14:45:04.250 に答える
0

ウォッチまたはクイックウォッチを追加してfoo(barIn)、結果を確認できます。強調表示して右クリックするだけです。デバッグ中のコンテキストメニューにはオプションがあります。そのメソッドを2回実行すると、1回に比べて望ましくない影響が生じる場合は、注意が必要です。

于 2012-07-10T14:46:08.307 に答える
0

そこに foo(barIn) を書き込むと、ウォッチウィンドウで戻り値を確認できますが、これにより foo メソッドが2回呼び出され、場合によってはそれが発生したくない場合があるため、変数に値を取得してそれが最善の方法です。コードがあれば、いつでも foo にステップインできます。

于 2012-07-10T14:47:40.557 に答える