Как остановить автоматическое закрытие консольных приложений C#? [дубликат]
этот вопрос уже есть ответ здесь:
- Почему окно консоли закрывается сразу же после отображения моего вывода? 18 ответов
мои консольные приложения в Visual Studio закрываются автоматически, поэтому я хотел бы использовать что-то вроде C system("PAUSE") чтобы "приостановить" приложения в конце его выполнения, как я могу этого добиться?
9 ответов:
Console.ReadLine();или
Console.ReadKey();
ReadLine()ждет ↩,ReadKey()ждет любой клавиши (за исключением клавиш).Edit: украл ключевой символ у Дарина.
вы можете просто скомпилировать (начать отладку) свою работу с Ctrl+F5.
попробовать его. Я всегда это делаю, и консоль показывает мне мои результаты, открытые на ней. Дополнительный код не требуется.
попробовать Ctrl + F5 в Visual Studio для запуска программы, это добавит паузу с "нажмите любую клавишу, чтобы продолжить..."автоматически без какой-либо консоли.Функции Readline() или ReadKey ().
использование:
Console.ReadKey();для его закрытия, когда кто-то нажимает любую клавишу, или:
Console.ReadLine();когда пользователь вводит что-то и нажимает enter.
Ctrl + F5 лучше, потому что вам не нужны дополнительные строки. И вы можете, в конце концов, нажать enter и выйти из режима работы.
но, когда вы запускаете программу с F5 и ставите точку останова, вы можете отлаживать свое приложение, и это дает вам другие преимущества.
кроме того, вы можете отложить закрытие, используя следующий код:
System.Threading.Thread.Sleep(1000);Примечание
Sleepиспользует миллисекунд.
упомянутые решения изменяют работу вашей программы.
вы можете конечно поставить
#if DEBUGи#endifвокруг вызовов консоли, но если вы действительно хотите, чтобы окно закрывалось только на вашем компьютере dev под Visual Studio или если VS не работает, только если вы явно настроили его, и вы не хотите раздражать'Press any key to exit...'при запуске из командной строки, путь заключается в использованииSystem.Diagnostics.DebuggerAPI.если вы только хотите, чтобы это работало в
DEBUG, просто оберните этот код в[Conditional("DEBUG")] void BreakConditional()метод.// Test some configuration option or another bool launch; var env = Environment.GetEnvironmentVariable("LAUNCH_DEBUGGER_IF_NOT_ATTACHED"); if (!bool.TryParse(env, out launch)) launch = false; // Break either if a debugger is already attached, or if configured to launch if (launch || Debugger.IsAttached) { if (Debugger.IsAttached || Debugger.Launch()) Debugger.Break(); }это также работает для отладки программ, которые нуждаются в повышенных привилегиях, или которые должны быть в состоянии поднять себя.