Какова команда выхода из приложения Console на С#?

Какова команда на С# для выхода из Консольного приложения?

Ответ 1

Вы можете использовать Environment.Exit(0); и Application.Exit

Environment.Exit(0) более чистый.

Ответ 2

Несколько вариантов, по порядку наиболее подходящего способа:

  • Возвращает int из метода Program.Main
  • Выбросьте исключение и не обрабатывайте его нигде (используйте для непредвиденных ситуаций)
  • Чтобы принудительно завершить работу в другом месте, System.Environment.Exit (не переносимо! см. ниже)

Отредактировано 9/2013 для улучшения удобочитаемости

Возврат с определенным кодом выхода:. Как указывает Servy в комментариях, вы можете объявить Main с типом возврата int и таким образом вернуть код ошибки. Поэтому нет необходимости использовать Environment.Exit, если вам не нужно завершать код выхода и не может это сделать в методе Main. Скорее всего, вы можете избежать этого, выбросив исключение и вернув код ошибки в Main, если там распространяется любое необработанное исключение. Если приложение многопоточно, вам, вероятно, понадобится еще больше шаблонов для правильного завершения с кодом выхода, чтобы вам было лучше отключить вызов среды. Exit.

Еще одна проблема против использования Evironment.Exit - даже при написании многопоточных приложений - повторного использования. Если вы когда-либо захотите повторно использовать свой код в среде, которая делает Environment.Exit нерелевантной (например, библиотеку, которая может использоваться на веб-сервере), код не будет переносимым. Лучшим решением по-прежнему является, на мой взгляд, всегда использовать исключения и/или возвращаемые значения, которые показывают, что метод достиг определенного состояния ошибки/завершения. Таким образом, вы всегда можете использовать один и тот же код в любой среде .NET и в любом типе приложений. Если вы пишете специально приложение, которое должно возвращать код выхода или завершать способом, аналогичным тому, что делает Environment.Exit, вы можете продолжить и обернуть поток на самом высоком уровне и обработать ошибки/исключения по мере необходимости.

Ответ 3

Консольные приложения завершатся, когда основная функция завершит работу. "Возврат" достигнет этого.

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

Если вы возвращаете код ошибки, вы можете сделать это таким образом, который доступен из функций за пределами исходного потока:

    System.Environment.Exit(-1);

Ответ 4

Вы можете использовать Environment.Exit(0) и Application.Exit.

Environment.Exit(): завершает этот процесс и предоставляет базовой операционной системе указанный код выхода.

Ответ 5

У меня возникло это сомнение и я нашел ответ простым (мое приложение тоже было довольно простым). Я также пытался найти способ остановить консольное приложение, которое было запущено. Приложение выполнит задачу, а затем снова запустит начальный цикл, вместо того, чтобы выйти из него.

do{
    byte.TryParse(Console.ReadLine(), out option);
    if (option == 1){
        write(path);
    }else if (option == 2){
        read(path);
    }else
        Console.WriteLine("Wrong option");
} while (option != 1 || option != 2);

Каждый раз, когда я вводил функцию записи или чтения, когда это делается, программа будет продолжать цикл и запрашивать ввод пользователя из-за первой строки цикла "do".
Простое решение состоит в том, чтобы просто добавить оператор break после обеих функций:

if (option == 1){
    write(path);
    break;
}else if (option == 2){
    read(path);
    break;
}else

Как оператор switch.