Visual Studio调试器执行Console.ReadLine()后自动关闭问题求助
问题定位与解决方法
一、控制台窗口直接关闭的原因
程序执行完Main方法内所有语句后,进程会自动终止,控制台窗口随之关闭。你输入内容后,后续输出语句执行完毕,没有任何阻止程序退出的逻辑,所以窗口直接关闭,这和调试模式本身无关。
另外你的代码存在一个编译错误:Console.WriteLine("Welcome to the index-character generator.);这行的字符串末尾缺少一个双引号,需先修正才能正常运行。
二、让程序在调试模式下完整执行的方法
以下几种方式可让控制台窗口保持打开:
- 在
Main方法末尾添加Console.ReadLine();:程序执行到此处会等待用户按下回车键再退出,你能完整查看输出结果。 - 在
Main方法末尾添加Console.ReadKey();:等待用户按下任意键后退出,效果和上述方法一致。 - 在Visual Studio中给最后一行输出代码设置断点,调试时程序会在断点处暂停,你可查看输出,按F5才会继续执行并退出。
修正后的代码示例:
namespace Ex04 { internal class Program { static void Main(string[] args) { string name; Console.WriteLine("Welcome to the index-character generator."); Console.WriteLine("Please write your name:"); name = Console.ReadLine(); Console.WriteLine("The second letter of your name is \"{0}\", the fourth letter is \"{1}\", while the sixth letter is \"{2}\".", name[1], name[3], name[5]); // 添加以下任意一行即可阻止窗口关闭 Console.ReadLine(); // 或者 Console.ReadKey(); } } }
三、F10启动调试时的起始语句是否重要
F10是逐过程调试(Step Over),默认从Main方法的第一行可执行代码开始。起始语句不影响程序的完整执行,仅决定你开始逐行调试的起点。若想从代码开头逐步调试,直接按F10即可;若想跳过前面的代码,可先设置断点,按F5跳转到断点位置后再用F10调试。
内容的提问来源于stack exchange,提问作者Aleksandar
相关产品推荐
相关产品推荐

