イミディエイトウィンドウは、アプリケーションをデバッグするための非常に便利なツールです。ブレークポイントのコンテキストで有効なコードステートメントを実行し、値を検査するために使用できます。また、言語機能を学習するためのコードスニペットを入力するためにも使用します。
イミディエイトウィンドウをどのように使用しますか?
イミディエイトウィンドウは、アプリケーションをデバッグするための非常に便利なツールです。ブレークポイントのコンテキストで有効なコードステートメントを実行し、値を検査するために使用できます。また、言語機能を学習するためのコードスニペットを入力するためにも使用します。
イミディエイトウィンドウをどのように使用しますか?
Visual Studioのイミディエイトウィンドウの優れた機能の1つは、メソッドがクライアントコードによって呼び出されたが、変数の割り当ての一部ではない場合に、メソッドの戻り値を評価できることです。デバッグモードでは、前述のように、変数を操作し、メモリ内で式を実行できます。これは、これを実行できるようにする上で重要な役割を果たします。
たとえば、次のような2つの数値の合計を返す静的メソッドがあるとします。
private static int GetSum(int a, int b)
{
return a + b;
}
次に、イミディエイトウィンドウで次のように入力できます。
? GetSum(2, 4)
6
ご覧のとおり、これは静的メソッドで非常にうまく機能します。ただし、メソッドが非静的である場合は、メソッドが属するオブジェクトへの参照を操作する必要があります。
たとえば、これがクラスの外観であるとしましょう。
private class Foo
{
public string GetMessage()
{
return "hello";
}
}
オブジェクトがすでにメモリに存在し、スコープ内にある場合は、現在のブレークポイントの前(または、少なくとも、コードがデバッグモードで一時停止される前)にインスタンス化されている限り、イミディエイトウィンドウで呼び出すことができます。
? foo.GetMessage(); // object ‘foo’ already exists
"hello"
さらに、メモリ内の既存のインスタンスに依存せずにメソッドを直接操作してテストする場合は、イミディエイトウィンドウで独自のインスタンスをインスタンス化できます。
? 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はイミディエイトウィンドウで機能しますが、少し一貫性がない場合があります。私の経験では、デバッグモードでのみ使用できるようですが、デザインの非デバッグモードでは使用できません。
残念ながら、イミディエイトウィンドウのもう1つの欠点は、ループをサポートしていないことです。
イミディエイトウィンドウを使用してコマンドを実行することもできます。aの>
後にコマンドを入力するだけです。
たとえば>shell cmd
、コマンドシェルを起動します(これは、たとえば、どの環境変数がVisual Studioに渡されたかを確認するのに役立ちます)。>cls
画面をクリアします。
独自のエイリアスを持つほど一般的に使用されるコマンドのリストは次のとおりです。https ://msdn.microsoft.com/en-us/library/c3a0kd3x.aspx
イミディエイトウィンドウは、式のデバッグと評価、ステートメントの実行、変数値の出力などに使用されます。これにより、デバッグ中に開発言語によって評価または実行される式を入力できます。
イミディエイトウィンドウを表示するには、[デバッグ]>[ウィンドウ]>[イミディエイト]を選択するか、Ctrl-Alt-Iを押します。
イミディエイトウィンドウの例を次に示します。
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();}
ブレークポイントを追加
コマンドを呼び出す