web-dev-qa-db-ja.com

C#コンソールアプリケーションが自動的に閉じないようにするにはどうすればよいですか?

Visual Studio上の私のコンソールアプリケーションは自動的に閉じてしまうので、Cのsystem("PAUSE")のようなものを使って実行の終わりにアプリケーションを「一時停止」したいのですが、どうすればそれを達成できますか?

325
Zignd
Console.ReadLine();

または

Console.ReadKey();

ReadLine() は待つ ReadKey() キーを待つ(修飾キーを除く)。

編集:Darinからキーシンボルを盗んだ。

505
Adam

あなたの作業をコンパイル(デバッグを開始)することができます。 Ctrl+F5

それを試してみてください。私はいつもやります、そしてコンソールは私に結果が開いているのを私に示しています。追加のコードは必要ありません。

143
Silvia Z

プログラムを実行するには、Visual Studioで Ctrl + F5 を押してください。Console.Readline()またはReadKey()関数を使用せずに、[続行するには任意のキーを押してください...

42
Sohail xIN3N

ユーザーが待つのを待つConsole.ReadLine() Enter キーを待つにはConsole.ReadKey

35
Darin Dimitrov

つかいます:

Console.ReadKey();

誰かが何かのキーを押したときに閉じるために、または

Console.ReadLine();

ユーザーが何かを入力してを押したときに入力します。

24
matthewr

追加の行が不要なので、Ctrl + F5が適しています。そして最後に、エンターを押してランニングモードを終了することができます。

しかし、F5を使ってプログラムを起動してブレークポイントを設定すると、アプリケーションをデバッグでき、それによって他の利点が得られます。

13

あるいは、次のコードを使用して終了を遅らせることができます。

System.Threading.Thread.Sleep(1000);

Sleepがミリ秒を使用していることに注意してください。

10
gotqn

これらの解決策はあなたのプログラムがどのように動作するかを変えるものです。

コンソール呼び出しの前後に#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();
}

これは、昇格された特権を必要とするプログラムや自分自身を昇格させる必要があるプログラムをデバッグするためにも機能します。

8
Eric

ユーザーがanykeyを押してもプログラムを閉じたくない場合。

 while (true) {
      System.Console.ReadKey();                
 };//This wont stop app
6
PodTech.io