web-dev-qa-db-fra.com

Quelle est la commande pour quitter une application console en C #?

Quelle est la commande en C # pour quitter une application console?

219
XxYo0nixX

Vous pouvez utiliser Environment.Exit(0); et Application.Exit

Environment.Exit(0)est plus propre .

278
Nikhil Agrawal

Plusieurs options, par ordre de la manière la plus appropriée:

  1. Renvoie un int de la méthode Program.Main
  2. Lancer une exception et ne pas la gérer n'importe où (à utiliser en cas d'erreur imprévue)
  3. Pour forcer la terminaison ailleurs, System.Environment.Exit (non portable! Voir ci-dessous)

Édité le 9/2013 pour améliorer la lisibilité

Retour avec un code de sortie spécifique: Comme Servy le fait remarquer, vous pouvez déclarer Main avec un type de retour int et renvoyer un code d'erreur de cette façon. Donc, il n’est vraiment pas nécessaire d’utiliser Environment.Exit sauf si vous devez terminer par un code de sortie et ne pouvez pas le faire dans la méthode Main. Vous pouvez probablement éviter cela en lançant une exception et en renvoyant un code d'erreur dans Main si une exception non gérée se propage à cet endroit. Si l'application est multi-thread, il vous faudra probablement encore plus de passe-partout pour bien se terminer par un code de sortie, il est donc préférable d'appeler Environment.Exit.

Un autre point contre l'utilisation de Evironment.Exit - même lors de l'écriture d'applications multithreads - est réutilisabilité. Si vous souhaitez réutiliser votre code dans un environnement rendant Environment.Exit inutile (telle qu'une bibliothèque pouvant être utilisée sur un serveur Web), le code ne sera pas portable. La meilleure solution reste toujours, à mon avis, de toujours utiliser des exceptions et/ou de renvoyer des valeurs qui indiquent que la méthode a atteint un certain état erreur/fin. De cette manière, vous pouvez toujours utiliser le même code dans n'importe quel environnement .NET et dans n'importe quel type d'application. Si vous écrivez spécifiquement une application qui a besoin de renvoyer un code de sortie ou de terminer de manière similaire à ce que fait Environment.Exit, vous pouvez alors envelopper le fil au plus haut niveau et gérer les erreurs/exceptions de la manière suivante: nécessaire.

92
sinelaw

Les applications de console se fermeront lorsque la fonction principale aura été exécutée. Un "retour" permettra d'atteindre cet objectif.

    static void Main(string[] args)
    {
        while (true)
        {
            Console.WriteLine("I'm running!");
            return; //This will exit the console application's running thread
        }
    }

Si vous renvoyez un code d'erreur, vous pouvez le faire de cette façon, ce qui est accessible à partir de fonctions extérieures au thread initial:

    System.Environment.Exit(-1);
23
Developer

Vous pouvez utiliser Environment.Exit(0) et Application.Exit.

Environment.Exit(): met fin à ce processus et fournit au système d'exploitation sous-jacent le code de sortie spécifié.