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?

Ale
quelle
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 .

Robert Northard
quelle
6

Sie können dies versuchen

Application.Exit();
namco
quelle
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();
user5328792
quelle
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.

Sachin Mathur
quelle
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();
        }
Keith Aymar
quelle