wake-up-neo.com

Was ist der Befehl zum Beenden einer Konsolenanwendung in C #?

Wie lautet der Befehl in C # zum Beenden einer Konsolenanwendung?

219
XxYo0nixX

Sie können Environment.Exit(0); und Application.Exit verwenden

Environment.Exit(0)ist sauberer .

278
Nikhil Agrawal

Mehrere Optionen in der am besten geeigneten Reihenfolge:

  1. Geben Sie ein int von der Program.Main-Methode zurück
  2. Eine Ausnahme auslösen und nirgends behandeln (für unerwartete Fehlersituationen verwenden)
  3. Um die Beendigung an einer anderen Stelle zu erzwingen, System.Environment.Exit (nicht portabel! Siehe unten)

Bearbeitet 9/2013 zur Verbesserung der Lesbarkeit

Rückgabe mit einem bestimmten Exit-Code: Wie Servy in den Kommentaren ausführt, können Sie Main mit dem Rückgabetyp int deklarieren und auf diese Weise einen Fehlercode zurückgeben. Es ist also nicht notwendig, Environment.Exit zu verwenden, es sei denn Sie müssen mit einem Exit-Code abschließen und können dies in der Main-Methode möglicherweise nicht tun. Höchstwahrscheinlich können Sie dies vermeiden, indem Sie eine Ausnahme auslösen und einen Fehlercode in Main zurückgeben, wenn sich dort eine nicht behandelte Ausnahme ausbreitet. Wenn es sich bei der Anwendung um eine Multithread-Anwendung handelt, benötigen Sie wahrscheinlich noch mehr Boilerplate, um ordnungsgemäß mit einem Beendigungscode zu enden. Rufen Sie daher möglicherweise einfach Environment.Exit auf.

Ein weiterer Punkt gegen die Verwendung von Evironment.Exit - auch beim Schreiben von Anwendungen mit mehreren Threads - ist Wiederverwendbarkeit. Wenn Sie Ihren Code jemals in einer Umgebung wiederverwenden möchten, die Environment.Exit irrelevant macht (z. B. eine Bibliothek, die möglicherweise auf einem Webserver verwendet wird), ist der Code nicht portierbar. Die beste Lösung ist meiner Meinung nach immer, Ausnahmen und/oder Rückgabewerte zu verwenden, die angeben, dass die Methode einen Fehler-/Endzustand erreicht hat. Auf diese Weise können Sie in jeder .NET-Umgebung und in jeder Art von Anwendung immer denselben Code verwenden. Wenn Sie speziell eine App schreiben, die einen Exit-Code zurückgeben oder auf ähnliche Weise beenden muss wie Environment.Exit, können Sie den Thread auf der höchsten Ebene umbrechen und die Fehler/Ausnahmen wie folgt behandeln erforderlich.

92
sinelaw

Konsolenanwendungen werden beendet, wenn die Hauptfunktion beendet ist. Eine "Rückkehr" wird dies erreichen.

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

Wenn Sie einen Fehlercode zurückgeben, können Sie dies auf folgende Weise tun, auf die über Funktionen außerhalb des anfänglichen Threads zugegriffen werden kann:

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

Sie können Environment.Exit(0) und Application.Exit verwenden.

Environment.Exit(): Beendet diesen Vorgang und gibt dem zugrunde liegenden Betriebssystem den angegebenen Beendigungscode.