一旦程序执行完毕,Visual Studio上的控制台应用程序就会自动关闭。我希望在应用程序执行结束时“暂停”应用程序,以便可以轻松地检查输出。我怎样才能做到呢?
Console. readline()来等待用户进入或控制台。ReadKey等待任何键。
更新:
从Visual Studio 2017开始,IDE中有一个内置选项:
Tools > Options > Debugging > Automatically close the console when debugging stops
取消选中它将在执行结束时自动暂停应用程序,允许您轻松地检查其输出,而无需向应用程序添加额外的代码。
有两种方法;
Console.ReadLine();
ReadLine()的美国小妞waits↩
or
Console.ReadKey();
ReadKey()等待任何键(修饰键除外)。
Use:
Console.ReadKey();
当有人按下任何键时,它就会关闭,或者:
Console.ReadLine();
当用户输入内容并按回车键时。
您可以使用Ctrl+F5编译(开始调试)您的工作。
试一试。我总是这样做,控制台显示我的结果打开了。不需要额外的代码。
尝试在Visual Studio中按Ctrl + F5来运行您的程序,这将自动添加一个暂停“按任意键继续…”,而不需要任何Console.Readline()或ReadKey()函数。
或者,您可以使用以下代码延迟关闭:
System.Threading.Thread.Sleep(1000);
注意Sleep使用的是毫秒。
Ctrl + F5更好,因为不需要额外的行。 最后,你可以点击进入并退出运行模式。
但是,当你用F5启动程序并设置断点时,你可以调试你的应用程序,这给了你其他的优势。
上面提到的解决方案改变了程序的工作方式。
你当然可以在控制台调用周围设置#if DEBUG和#endif,但如果你真的想防止窗口只在Visual Studio下的开发机器上关闭,或者如果VS没有运行,那么你只需要显式地配置它,并且你不想看到烦人的“Press any key to exit…”’当从命令行运行时,方法是使用System.Diagnostics.Debugger API的。
如果只希望它在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();
}
这也适用于调试需要提升特权或需要能够提升自身的程序。
如果你不希望程序关闭,即使用户按下任何键;
while (true) {
System.Console.ReadKey();
};//This wont stop app
推荐文章
- 如何获取HttpContext。目前在ASP。网络核心?
- 给定文件系统路径,是否有一种更短的方法来提取没有扩展名的文件名?
- 方法在字典中添加新项或更新现有项
- 使用Lambda/Linq对列表进行对象排序
- 为什么我不能在.NET中定义一个结构的默认构造函数?
- TypeLoadException表示“没有实现”,但它已经实现了
- 如何在ASP中返回当前操作。NET MVC视图?
- 存储Kinect 2.0版本的动作到BVH文件
- SortedList和SortedDictionary之间的区别是什么?
- jQuery用户界面对话框。NET按钮回发
- 合并。net中的两个数组
- 如何在Visual Studio中启用NuGet包恢复?
- 如何在实体框架6中调用存储过程(代码优先)?
- 更酷的ASCII转轮?
- c#中的数组片