Wie lautet der Befehl in C # zum Beenden einer Konsolenanwendung?
Sie können Environment.Exit(0);
und Application.Exit
verwenden
Environment.Exit(0)
ist sauberer .
Mehrere Optionen in der am besten geeigneten Reihenfolge:
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.
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);
Sie können Environment.Exit(0)
und Application.Exit
verwenden.
Environment.Exit()
: Beendet diesen Vorgang und gibt dem zugrunde liegenden Betriebssystem den angegebenen Beendigungscode.