web-dev-qa-db-fra.com

Comment garder la fenêtre de la console ouverte

Lorsque j'exécute mon programme, la fenêtre de la console semble s'exécuter et se fermer. Comment le garder ouvert pour que je puisse voir les résultats? 

class Program
{
    public class StringAddString       
    {                        
        public virtual void AddString()
        {
            var strings2 = new string[] { "1", "2", "3", "4", "5","6", "7", "8", "9"};

            Console.WriteLine(strings2);
            Console.ReadLine();
        }
    }

    static void Main(string[] args)
    {          
        StringAddString s = new StringAddString();            
    }
}
29
user1929393

Vous avez oublié d'appeler votre méthode:

static void Main(string[] args)
{          
    StringAddString s = new StringAddString();  
    s.AddString();
}

cela devrait arrêter votre console, mais le résultat pourrait ne pas être ce que vous attendiez, vous devriez changer votre code un peu:

Console.WriteLine(string.Join(",", strings2));
10
cuongle

Placez Console.Read () à la dernière ligne de votre programme. Cela l'empêchera de se fermer jusqu'à ce que vous appuyiez sur une touche

static void Main(string[] args)
{
    StringAddString s = new StringAddString();
    Console.Read();            
}
71
TGH

Si vous voulez le garder ouvert pendant le débogage, mais le laisser toujours se fermer normalement quand vous ne le déboguez pas, vous pouvez faire quelque chose comme ceci:

if (System.Diagnostics.Debugger.IsAttached) Console.ReadLine();

Comme d'autres réponses l'ont indiqué, l'appel à Console.ReadLine() gardera la fenêtre ouverte jusqu'à ce que vous appuyiez sur entrée, mais Console.ReadLine() ne sera appelé que si le débogueur est connecté.

28
Herr Grumps

Je connais deux manières

1) Console.ReadLine() à la fin du programme. Inconvénient, vous devez changer votre code et ne pas oublier de le sortir

2) Exécuter en dehors du débogueur CONTROL-F5 Ceci ouvre une fenêtre de console en dehors de Visual Studio et cette fenêtre ne se fermera pas une fois l'opération terminée. Avantage, vous n’avez pas à changer votre code. Inconvénient, s'il y a une exception, elle ne tombera pas dans le débogueur (cependant, lorsque vous obtenez des exceptions, vous pouvez simplement la réexécuter dans le débogueur).

18
Keith Nicholas
Console.ReadKey(true);

Cette commande est un peu plus agréable que readline qui ne passe que lorsque vous appuyez sur enter, et le paramètre true masque également le curseur clignotant moche lors de la lecture du résultat :)

11
Cpt Balu

Ecrivez Console.ReadKey(); dans la dernière ligne de la méthode main(). Cette ligne empêche de terminer la console. J'espère que cela vous aiderait.

5
Mansuu....

Vous pouvez gérer cela sans nécessiter l'intervention de l'utilisateur.

Étape 1. Créez un ManualRestEvent au début du thread principal

ManualResetEvent manualResetEvent = new ManualResetEvent(false);

Étape 2 . Wait ManualResetEvent

manualResetEvent.WaitOne();

Étape 3.Arrêter

manualResetEvent.Set();
3
Charith

Utilisez Console.Readline () à la fin. Votre code ne se fermera pas tant que vous ne le fermez pas manuellement. Depuis que Readline attend une entrée à saisir pour votre code, votre console sera ouverte jusqu'à ce que vous tapiez une entrée.

1
Sarvesh Nayak

Assurez-vous d’utiliser Console.ReadLine();to pour que le message précédent Console.WriteLine(""); ne ferme pas.

1
stackptr

Pour l’application Visual C # Console, utilisez:

Console.ReadLine();
Console.Read();
Console.ReadKey(true);

pour l'utilisation de l'application console Visual C++ Win32:

system("pause");

appuyez sur ctrl + f5 pour exécuter l'application.

0