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();            
    }
}
27
demandé sur abatishchev 2013-06-06 06:35:36

9 réponses

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 un peu votre code:

Console.WriteLine(string.Join(",", strings2));
11
répondu Cuong Le 2013-06-06 03:13:17

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

static void Main(string[] args)
{
    StringAddString s = new StringAddString();
    Console.Read();            
}
67
répondu TGH 2014-03-14 19:27:59

Si vous voulez le garder ouvert lorsque vous déboguez, mais le laisser fermer normalement lorsque 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 entrée soit pressée, mais Console.ReadLine() ne sera appelé que si le débogueur est attaché.

28
répondu Herr Grumps 2013-11-05 08:01:48

Il y a deux façons dont je connais

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

2) Exécuter en dehors du débogueur {[1] } cela ouvre une fenêtre de console en dehors de visual studio et cette fenêtre ne se ferme pas lorsque vous avez terminé. 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 le débogueur)

16
répondu Keith Nicholas 2014-11-17 19:07:40
Console.ReadKey(true);

Cette commande est un peu plus agréable que readline qui ne passe que lorsque vous appuyez sur Entrée, et le paramètre true cache également le curseur clignotant laid lors de la lecture du résultat:) alors toute frappe se termine

10
répondu Cpt Balu 2015-01-13 12:38:19

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

5
répondu Mansuu.... 2017-01-30 06:04:01

Vous pouvez gérer cela sans avoir besoin d'une entrée utilisateur.

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

ManualResetEvent manualResetEvent = new ManualResetEvent(false);

Étape 2 . Attendez ManualResetEvent

manualResetEvent.WaitOne();

Étape 3.To Stop

manualResetEvent.Set();
3
répondu Charith 2017-03-17 12:46:53

Utiliser La Console.Readline() à la fin .Votre code ne se fermera pas tant que vous ne le fermerez pas manuellement.Puisque Readline attend l'entrée qui doit être entrée pour votre code, votre console sera ouverte jusqu'à ce que vous tapiez une entrée.

1
répondu Sarvesh Nayak 2013-06-06 14:43:14

Assurez-vous d'utiliserConsole.ReadLine(); pour empêcher le message Console.WriteLine(""); précédent de se fermer.

1
répondu stackptr 2013-07-06 21:18:55