Befehl zum Schließen einer Konsolenanwendung?


82

Ich muss die Konsole schließen, wenn der Benutzer eine Menüoption auswählt.

Ich habe versucht, close()aber es hat nicht funktioniert ..

Wie kann ich das machen?


2
Nur neugierig: Auf welchem ​​Objekt haben Sie versucht, .Close () aufzurufen?
Paul Sasik

Antworten:



28

Mit Schließen meinen Sie, dass die aktuelle Instanz der Konsolen-App geschlossen werden soll oder dass der Anwendungsprozess beendet werden soll? Verpasst, dass alle wichtigen Exit-Code:

Environment.Exit(0);

Oder um die aktuelle Instanz des Formulars zu schließen:

this.Close();

Nützlicher Link .


6

Sie können dies versuchen

Application.Exit();

5
 //How to start another application from the current application
 Process runProg = new Process();
 runProg.StartInfo.FileName = pathToFile; //the path of the application
 runProg.StartInfo.Arguments = genArgs; //any arguments you want to pass
 runProg.StartInfo.CreateNoWindow = true;
 runProg.Start();

 //How to end the same application from the current application
 int IDstring = System.Convert.ToInt32(runProg.Id.ToString());
 Process tempProc = Process.GetProcessById(IDstring);
 tempProc.CloseMainWindow();
 tempProc.WaitForExit();

1

return; beendet eine Methode in C #.

Siehe Codefragment unten

using System;

namespace Exercise_strings
{
    class Program
    {
        static void Main(string[] args)
        {
           Console.WriteLine("Input string separated by -");

            var stringInput = Console.ReadLine();

            if (string.IsNullOrWhiteSpace(stringInput))
            {
                Console.WriteLine("Nothing entered");
                return;
            }
}

Wenn in diesem Fall ein Benutzer eine Nullzeichenfolge oder ein Leerzeichen eingibt, beendet die Verwendung der Rückgabemethode die Hauptmethode elegant.


0

Sie haben also nicht gesagt, dass die Anwendung abrupt beendet oder beendet werden soll. Als weitere Option können Sie die Antwortschleife möglicherweise elegant beenden. (Ich gehe davon aus, dass Sie eine while-Schleife haben, die auf Benutzeranweisungen wartet. Dies ist ein Code aus einem Projekt, das ich gerade heute geschrieben habe.

        Console.WriteLine("College File Processor");
        Console.WriteLine("*************************************");
        Console.WriteLine("(H)elp");
        Console.WriteLine("Process (W)orkouts");
        Console.WriteLine("Process (I)nterviews");
        Console.WriteLine("Process (P)ro Days");
        Console.WriteLine("(S)tart Processing");
        Console.WriteLine("E(x)it");
        Console.WriteLine("*************************************");

        string response = "";
        string videotype = "";
        bool starting = false;
        bool exiting = false;

        response = Console.ReadLine();

        while ( response != "" )
        {
            switch ( response  )
            {
                case "H":
                case "h":
                    DisplayHelp();
                    break;

                case "W":
                case "w":
                    Console.WriteLine("Video Type set to Workout");
                    videotype = "W";
                    break;

                case "I":
                case "i":
                    Console.WriteLine("Video Type set to Interview");
                    videotype = "I";
                    break;

                case "P":
                case "p":
                    Console.WriteLine("Video Type set to Pro Day");
                    videotype = "P";
                    break;

                case "S":
                case "s":
                    if ( videotype == "" )
                    {
                        Console.WriteLine("Please Select Video Type Before Starting");
                    }
                    else
                    {
                        Console.WriteLine("Starting...");
                        starting = true;
                    }
                    break;

                case "E":
                case "e":
                    Console.WriteLine("Good Bye!");
                    System.Threading.Thread.Sleep(100);
                    exiting = true;
                    break;
            }

            if ( starting || exiting)
            {
                break;
            }
            else
            {
                response = Console.ReadLine();
            }
        }

        if ( starting )
        {
            ProcessFiles();
        }
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.