Какова команда на С# для выхода из Консольного приложения?
Какова команда выхода из приложения 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.