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();
}
}
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));
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();
}
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é.
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).
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 :)
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.
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();
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.
Assurez-vous d’utiliser Console.ReadLine();
to pour que le message précédent Console.WriteLine("");
ne ferme pas.
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.