Все в порядке с Visual Studio.
Это ожидаемое поведение вашей программы.
Во-первых, вам нужно понять, что Visual Studio никоим образом не влияет на процесс выполнения программы после ее компиляции и запуска. Он не должен «приостанавливать программу» в самом конце выполнения. Итак, если вы запустите свое приложение, нажав F5
в Visual Studio или запустите его за пределами Visual Studio как exe
-файл, вы получите тот же результат.
Теперь вопрос другой: «Почему приложения консоли закрываются сразу после выполнения, а не приостанавливаются в конце и позволяют мне что-то читать»? Ответ заключается в том, что предполагается, что консольные приложения должны выполняться. Он запускается, выполняет некоторый код и возвращает 0 (в хорошем случае). Если они запущены в консоли, результаты выполнения будут отображаться на консоли. Однако, если они запускаются за пределами консоли, в качестве приложения они открывают консоль, выводят что-то и закрывают, прежде чем что-либо читать.
Например, возьмите приложение runas
. Попробуйте открывающейся консоль (Win+R
->cmd
) и введите
runas
Вы увидите помощь, объясняющую, как использовать runas
приложения. Сразу после вывода этого значения он закроется, и элемент управления будет возвращен на cmd.exe
. Вы сможете запускать другие приложения.
Теперь попробуйте открыть его вне консоли, используя cmd
снова (не пугайтесь, это абсолютно безопасно):
%windir%\system32\runas.exe
Та же информация будет outputed к консоли, но вы, вероятно, выиграл» У меня есть время, чтобы прочитать что-нибудь.
Подводя итог: ваша Консоль приложение должно что-то сделать, вывести некоторую информацию и закрыть после нее. Вот как они работают. Однако в процессе разработки вам нужно будет поставить «паузу», точку останова или что-то еще в конце приложения, чтобы увидеть результаты выполнения.
Что касается меня, то самый удобный подход - это вставка этой строки в конце приложения.
Console.ReadKey();
return 0;
Вы также можете использовать Ctrl+F5
для запуска приложения в консоли без отладки.
Он выполнит команду консоли pause
, которая выводит «Нажмите любую клавишу, чтобы продолжить ...» перед закрытием. Однако вы не сможете его отладить.
Спасибо! Я очень этому знаю, это было очень полезно! –