Comment utilisez-vous la fenêtre immédiate de Visual Studio?

la fenêtre immédiate est un outil extrêmement utile pour déboguer les applications. Il peut être utilisé pour exécuter des instructions de code qui sont valides dans le contexte d'un point de rupture et inspecter les valeurs. Je l'utilise aussi pour taper des morceaux de code pour apprendre des fonctionnalités de langue.

comment utilisez-vous la fenêtre immédiate?

109
demandé sur CJBS 2009-04-27 20:25:32

4 réponses

une caractéristique agréable de la fenêtre immédiate dans Visual Studio est sa capacité à évaluer la valeur de retour d'une méthode en particulier si elle est appelée par votre code client mais il est pas partie d'une tâche variable. En mode Debug, comme mentionné, vous pouvez interagir avec des variables et exécuter des expressions en mémoire qui joue un rôle important dans la capacité de le faire.

par exemple, si vous avez une méthode statique qui retourne la somme de deux numéros tels que:

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

alors dans la fenêtre immédiate vous pouvez taper ce qui suit:

? GetSum(2, 4)
6

comme vous pouvez le voir, cela fonctionne vraiment bien pour les méthodes statiques. Cependant, si la méthode non-statique, alors vous devez interagir avec une référence à l'objet de la méthode appartient.

par exemple, disons que c'est à ça que ressemble votre classe:

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

Si l'objet existe déjà en mémoire et c'est en scope, alors vous pouvez l'appeler dans la fenêtre immédiate aussi longtemps qu'il a été instancié avant votre point de rupture actuel (ou, au moins, avant où le code est mis en pause en mode de débogage):

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

en outre, si vous voulez interagir et tester la méthode directement sans compter sur une instance existante en mémoire, alors vous pouvez instancier votre propre instance dans la fenêtre immédiate:

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

vous pouvez aller un peu plus loin et affecter temporairement les résultats de la méthode aux variables Si vous voulez faire d'autres évaluations, calculs, etc.:

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

de plus, si vous ne voulez même pas déclarer un nom de variable pour un nouvel objet et que vous voulez simplement exécuter une de ses méthodes / fonctions, alors faites ceci:

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

Un moyen très courant de voir la valeur d'une méthode consiste à sélectionner le nom de la méthode d'une classe et de faire une " Ajouter Regarder de sorte que vous pouvez voir sa valeur actuelle dans la fenêtre espion. Cependant, une fois de plus, l'objet doit être instancié et dans la portée pour qu'une valeur valide soit affichée. Ceci est beaucoup moins puissant et plus restrictif que l'utilisation de la fenêtre immédiate.

avec les méthodes d'inspection, vous pouvez faire des équations mathématiques simples:

? 5 * 6
30

ou comparer les valeurs:

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

Le point d'interrogation ( ' ?') n'est pas nécessaire si vous êtes directement dans la fenêtre immédiate, mais il est inclus ici pour plus de clarté (pour distinguer entre les expressions tapées et les résultats.) Cependant, si vous êtes dans la fenêtre de commande et avez besoin de faire des choses rapides dans la fenêtre immédiate, alors précédez vos déclarations avec"?"et vous partez.

Intellisense travaille dans la Fenêtre , mais il peut parfois être un peu incohérent. Dans mon expérience, il me semble être disponible uniquement en mode débogage, mais pas en mode design, non-debug.

malheureusement, un autre inconvénient de la fenêtre immédiate est qu'elle ne supporte pas les boucles.

121
répondu Ray Vega 2017-05-23 11:54:56

utilisez la fenêtre immédiate pour exécuter des commandes

la fenêtre immédiate peut également être utilisée pour exécuter des commandes. Il suffit de taper un > suivi de la commande.

enter image description here

par exemple >shell cmd lancera une commande shell (cela peut être utile pour vérifier quelles variables d'environnement ont été passées à Visual Studio, par exemple). >cls nettoiera l'écran.

Voici une liste de commandes qui sont si couramment utilisées qu'elles ont leurs propres alias: https://msdn.microsoft.com/en-us/library/c3a0kd3x.aspx

9
répondu CJBS 2017-02-27 19:06:01

la fenêtre immédiate est utilisée pour déboguer et évaluer des expressions, exécuter des instructions, imprimer des valeurs variables, et ainsi de suite. Il vous permet d'entrer des expressions à évaluer ou à exécuter par le langage de développement pendant le débogage.

pour afficher la fenêtre immédiate, choisissez Debug >Windows > immédiate ou appuyez sur Ctrl-Alt-I

enter image description here

voici un exemple avec immédiat Fenêtre:

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();}

ajouter le point de rupture

enter image description here

commandes d'appel

enter image description here

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

3
répondu Isma Rekathakusuma 2017-11-22 07:56:32

Je l'utilise moins maintenant que dans le passé. Il est parfois utile de modifier la valeur d'une variable, ou d'inspecter des objets. Cela peut être fait par la fenêtre de la montre aussi, donc j'ai tendance à l'utiliser plus souvent.

-3
répondu 2009-04-27 16:33:10