Come si fa a utilizzare la Finestra Immediata in Visual Studio?
-
16-09-2019 - |
Domanda
La Finestra Immediata è uno strumento estremamente utile strumento per il debug delle applicazioni.Esso può essere utilizzato per eseguire istruzioni di codice che sono validi nel contesto di un break-point e controllare i valori.Lo uso anche per il tipo di frammenti di codice per imparare le caratteristiche dei linguaggi.
Come si fa a utilizzare la Finestra Immediata?
Soluzione
Una caratteristica della finestra immediata in Visual Studio è la sua capacità di valutare il valore di ritorno di un metodo particolarmente se viene chiamato dal codice client, ma è non parte di un assegnamento di variabile. In modalità di debug, come detto, è possibile interagire con le variabili ed eseguire le espressioni nella memoria, che svolge un ruolo importante nel riuscire a fare questo.
Ad esempio, se si ha un metodo statico che restituisce la somma di due numeri come ad esempio:
private static int GetSum(int a, int b)
{
return a + b;
}
Poi, nella finestra immediata è possibile digitare il seguente:
? GetSum(2, 4)
6
Come si può vedere, questo funziona davvero bene per i metodi statici. Tuttavia, se il metodo è non statico quindi è necessario interagire con un riferimento all'oggetto il metodo appartiene.
Per esempio, diciamo che questo è ciò che la classe appare come:
private class Foo
{
public string GetMessage()
{
return "hello";
}
}
Se l'oggetto esiste già in memoria ed è di portata, allora si può chiamare nella finestra immediata fintanto che è stata creata un'istanza prima il punto di interruzione corrente (o, almeno, prima ovunque il codice è in pausa in modalità debug):
? foo.GetMessage(); // object ‘foo’ already exists
"hello"
Inoltre, se si desidera interagire e testare il metodo direttamente senza fare affidamento su un'istanza esistente in memoria, quindi è possibile creare un'istanza il tuo proprio istanza nella finestra immediata:
? Foo foo = new Foo(); // new instance of ‘Foo’
{temp.Program.Foo}
? foo.GetMessage()
"hello"
Si può prendere un ulteriore passo avanti e assegnare temporaneamente i risultati del metodo alle variabili se si vuole fare ulteriori valutazioni, calcoli, ecc.
? string msg = foo.GetMessage();
"hello"
? msg + " there!"
"hello there!"
Inoltre, se non vuoi nemmeno dichiarare un nome di variabile per un nuovo oggetto e desidera solo per eseguire uno dei suoi metodi / funzioni poi fare questo:
? new Foo().GetMessage()
"hello"
Un modo molto comune vedere il valore di un metodo è quello di selezionare il nome del metodo di una classe e fare un ‘Aggiungere Watch’ così che si può vedere il suo valore corrente nella finestra di controllo. Tuttavia, ancora una volta, l'oggetto deve essere istanziata e portata per un valore valido da visualizzare. Questo è molto meno potente e più restrittiva rispetto all'utilizzo finestra immediata.
Con i metodi controllo, si può fare semplici equazioni matematiche:
? 5 * 6
30
o confrontare i valori:
? 5==6
false
? 6==6
true
Il punto interrogativo ( '?') Non è necessaria se si è in direttamente nella finestra immediata, ma è incluso qui per chiarezza (per distinguere tra la digitato nelle espressioni contro i risultati.) Tuttavia, se si è in Command finestra e necessità di fare alcune cose rapido nella finestra immediata poi precedere le sue dichiarazioni con '?' e il gioco è fatto.
Intellisense lavora nella finestra immediata , ma a volte può essere un po 'incoerente. Nella mia esperienza, sembra essere disponibile solo in modalità debug, ma non nel design, la modalità non-debug.
Purtroppo, un altro inconveniente della finestra immediata è che non supporta cicli.
Altri suggerimenti
Utilizzare la finestra immediata per eseguire i comandi
La finestra immediata può essere utilizzato anche per eseguire i comandi. Basta digitare un >
seguito dal comando.
Per esempio >shell cmd
inizierà una shell di comando (questo può essere utile per verificare quali variabili ambiente sono stati passati a Visual Studio, per esempio). >cls
cancellerà lo schermo.
Ecco una lista di comandi che sono così di uso comune che hanno i loro pseudonimi: https://msdn.microsoft.com/en-us/library/c3a0kd3x.aspx
La finestra Immediata viene utilizzato per eseguire il debug e valutare le espressioni, l'esecuzione di istruzioni, stampare i valori delle variabili e così via.Esso consente di inserire espressioni da valutare o eseguito dal linguaggio di sviluppo durante il debug.
Per visualizzare la Finestra Immediata, scegliere Debug >Windows >Immediato o premere Ctrl-Alt-I
Ecco un esempio con Finestra Immediata:
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();}
aggiungi punto di interruzione
comandi di chiamata
Io lo uso meno oggi rispetto al passato. A volte è utile per cambiare il valore di una variabile, o ispezionare oggetti. Che può essere fatto attraverso la finestra di controllo troppo, così ho tendono ad usare quella più spesso.