¿Comando para cerrar una aplicación de consola?

82

Necesito cerrar la consola cuando el usuario selecciona una opción de menú.

Intenté usar close()pero no funcionó.

¿Cómo puedo hacer esto?

cerveza inglesa
fuente
2
Solo curiosidad: ¿En qué objeto intentaste llamar a .Close ()?
Paul Sasik

Respuestas:

28

Por cerrar, ¿quiere decir que desea que se cierre la instancia actual de la aplicación de consola o desea que finalice el proceso de la aplicación? Se perdió todo el código de salida importante:

Environment.Exit(0);

O para cerrar la instancia actual del formulario:

this.Close();

Enlace útil .

Robert Northard
fuente
6

Puedes probar esto

Application.Exit();
Namco
fuente
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();
usuario5328792
fuente
1

return; saldrá de un método en C #.

Ver fragmento de código a continuación

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;
            }
}

Entonces, en este caso, si un usuario ingresa una cadena nula o un espacio en blanco, el uso del método de retorno termina elegantemente el método Main.

sachin mathur
fuente
0

Así que no dijiste que querías que la aplicación se cerrara o saliera abruptamente, así que como otra opción, tal vez simplemente hacer que el ciclo de respuesta termine elegantemente. (Supongo que tiene un ciclo while esperando las instrucciones del usuario. Este es un código de un proyecto que acabo de escribir hoy.

        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
fuente