web-dev-qa-db-ja.com

Visual Studioでイミディエイトウィンドウを使用する方法

イミディエイトウィンドウは、アプリケーションのデバッグに非常に役立つツールです。ブレークポイントのコンテキストで有効なコードステートメントを実行し、値を検査するために使用できます。また、これを使用してコードスニペットを入力し、言語機能を学習します。

イミディエイトウィンドウはどのように使用しますか?

115
Phillip Ngan

Visual Studioのイミディエイトウィンドウの優れた機能の1つは、特にクライアントコードによって呼び出されるが、変数割り当ての一部であるnotである場合に、メソッドの戻り値を評価する機能です。前述のように、デバッグモードでは、変数と対話し、メモリ内で式を実行できます。これは、これを行うために重要な役割を果たします。

たとえば、次のような2つの数値の合計を返す静的メソッドがある場合:

private static int GetSum(int a, int b)
{
    return a + b;
}

次に、イミディエイトウィンドウで次を入力できます。

? GetSum(2, 4)
6

ご覧のとおり、これは静的メソッドに対して非常にうまく機能します。ただし、メソッドが静的でない場合は、メソッドが属するオブジェクトへの参照と対話する必要があります。

たとえば、クラスが次のように見えるとしましょう:

private class Foo
{
    public string GetMessage()
    {
        return "hello";
    }
}

オブジェクトが既にメモリ内に存在し、スコープ内にある場合は、インスタンス化されている限りイミディエイトウィンドウで呼び出すことができますbefore現在のブレークポイント(または、少なくとも、コードがある場所の前)デバッグモードで一時停止)

? foo.GetMessage(); // object ‘foo’ already exists
"hello"

また、メモリ内の既存のインスタンスに依存せずにメソッドを直接操作およびテストする場合は、イミディエイトウィンドウでownインスタンスをインスタンス化できます。

? Foo foo = new Foo(); // new instance of ‘Foo’
{temp.Program.Foo}
? foo.GetMessage()
"hello"

さらに評価や計算などを行う場合は、さらに一歩進んで、メソッドの結果を変数に一時的に割り当てることができます。

? string msg = foo.GetMessage();
"hello"
? msg + " there!"
"hello there!"

さらに、新しいオブジェクトの変数名を宣言したくなく、そのメソッド/関数の1つを実行したい場合は、次のようにします。

? new Foo().GetMessage()
"hello" 

メソッドの値を表示する非常に一般的な方法は、クラスのメソッド名を選択して「ウォッチの追加」を実行し、ウォッチウィンドウで現在の値を表示できるようにすることです。ただし、再度有効な値を表示するには、オブジェクトをインスタンス化してスコープ内に入れる必要があります。これは、イミディエイトウィンドウを使用するよりもはるかに強力で制限が厳しくなります。

メソッドの検査に加えて、簡単な数学方程式を実行できます。

? 5 * 6
30

または値を比較します:

? 5==6
false
? 6==6
true

イミディエイトウィンドウに直接いる場合は疑問符( '?')は不要ですが、明確にするためにここに含まれています(式の入力と結果を区別するため)。ただし、コマンドウィンドウにいて必要な場合イミディエイトウィンドウで簡単な操作を行い、ステートメントの前に「?」出発します。

Intellisenseはイミディエイトウィンドウで動作します ですが、少し矛盾する場合があります。私の経験では、それはデバッグモードでのみ利用可能で、デザイン、非デバッグモードでは利用できないようです。

残念ながら、イミディエイトウィンドウの別の欠点は、ループをサポートしていないことです。

126
Ray Vega

イミディエイトウィンドウを使用してコマンドを実行する

イミディエイトウィンドウは、コマンドの実行にも使用できます。 >に続けてコマンドを入力します。

enter image description here

たとえば、>Shell cmdはコマンドシェルを開始します(これは、たとえばVisual Studioに渡された環境変数を確認するのに役立ちます)。 >clsは画面をクリアします。

以下に、よく使用されるコマンドのリストを示します。これらのコマンドには独自のエイリアスがあります。 https://msdn.Microsoft.com/en-us/library/c3a0kd3x.aspx

10
CJBS

イミディエイトウィンドウは、式のデバッグと評価、ステートメントの実行、変数値の出力などに使用されます。デバッグ中に開発言語によって評価または実行される式を入力できます。

イミディエイトウィンドウを表示するには、[デバッグ]> [Windows]> [イミディエート]を選択するか、Ctrl-Alt-Iを押します。

enter image description here

イミディエイトウィンドウの例を次に示します。

int Sum(int x, int y) { return (x + y);}
void main(){
int a, b, c;
a = 5;
b = 7;
c = Sum(a, b);
char temp = getchar();}

ブレークポイントを追加

enter image description here

呼び出しコマンド

enter image description here

https://msdn.Microsoft.com/en-us/library/f177hahy.aspx

5