414

我在 Visual Studio 上的控制台应用程序会自动关闭,因此,我想使用 C 之类的东西system("PAUSE")在应用程序执行结束时“暂停”应用程序。我怎样才能做到这一点?

4

9 回答 9

624
Console.ReadLine();

或者

Console.ReadKey();

ReadLine()等待↩</kbd>, ReadKey() waits for any key (except for modifier keys).

编辑:从达林那里偷了钥匙符号。

于 2012-07-16T21:27:26.053 回答
205

您可以使用Ctrl+编译(开始调试)您的工作F5

尝试一下。我总是这样做,控制台会向我显示我的结果。不需要额外的代码。

于 2013-09-13T19:52:45.773 回答
51

尝试在 Visual Studio 中使用Ctrl + F5来运行您的程序,这将在没有任何 Console.Readline() 或 ReadKey() 函数的情况下自动添加“按任意键继续...”的暂停。

于 2014-08-05T15:00:38.227 回答
43

Console.ReadLine()等待用户EnterConsole.ReadKey等待任何键。

于 2012-07-16T21:27:17.473 回答
28

采用:

Console.ReadKey();

当有人按下任何键时它会关闭,或者:

Console.ReadLine();

当用户输入内容并按下回车时。

于 2012-07-16T21:27:50.460 回答
16

或者,您可以使用以下代码延迟关闭:

System.Threading.Thread.Sleep(1000);

注意Sleep使用毫秒。

于 2014-12-07T12:40:26.237 回答
15

Ctrl + F5 更好,因为您不需要额外的行。最后,您可以点击进入和退出运行模式。

但是,当您使用 F5 启动程序并设置断点时,您可以调试您的应用程序,这会给您带来其他优势。

于 2015-07-02T09:18:53.883 回答
11

提到的这些解决方案会改变您的程序的工作方式。

您当然可以放置控制台调用#if DEBUG#endif但如果您真的想阻止窗口仅在 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();
}

这也适用于调试需要提升特权或需要能够提升自身的程序。

于 2016-06-15T03:21:34.253 回答
3

如果您不希望程序关闭,即使用户按任意键;

 while (true) {
      System.Console.ReadKey();                
 };//This wont stop app
于 2017-03-24T13:53:00.957 回答