🎲

[C#・Visual Studio]アプリ終了後のコンソール自動終了

2023/02/07に公開

2023/02/06 現在の内容です。👹👹👹
Visual StudioC# の変数やライブラリの確認を行う際に、コンソールに出力して動作を確認しています。理由としては単純でデバッグ出力で出力ウィンドウを確認するよりも、コンソールを起動して確認する方が出力結果の視認性が向上するからです👀
アプリが終了するとコンソールが自動で終了し、出力の確認ができなくなるため、今までは何気なくブレイクポイントを置いていましたが、複数コンソールを表示させておく方法があったので議事録を兼ねてまとめました。

  • 開発環境
    Visual Studio 2022
  • バージョン
    17.4.4
  • .NET Framework
    4.8

コンソールを自動終了しない

  • ブレイクポイントを置く

主に最後に出力する値にブレイクポイントを置きます。(行を選択して、 F9 を押下)

  • デバッグなしで実行する

こちらが最も簡単な方法です。
「 デバッグタブ ⇒ デバッグなしで開始 」を押下します。(ctrl + F5 を押下)

  • 入力を受け取る処理を追加する

Console クラスに入力用のメソッドが複数あるため、それらを追加します。「デバッグの開始」をしても有効でした。

  • Readline

    標準入力ストリームから次の1行分の文字の読み取り
Console.Readline();
  • Read
    標準入力ストリームから次の文字の読み取り
Console.Read();
  • ReadKey
    次の文字キーまたはファンクションキーを取得
Console.ReadKey();

コンソールを自動終了する(おまけ)

C# では特に変化がありませんでしたが、 C++ では効果があった方法について紹介します。
ツールバー ⇒ オプション ⇒ デバッグ ⇒ 全般 ⇒ デバッグの停止時に自動的にコンソールを閉じる
にチェックを入れてデバッグを開始することでコンソールを自動終了できます。

実行結果

「デバッグなしで開始」をすると効果がないですが、「デバッグの開始」をするとアプリが終了したらコンソールも終了しました。

  • 「チェックなし」で「デバッグの開始」
  • 「チェックなし」で「デバッグなしで開始」
  • 「チェックあり」で「デバッグの開始」
    一瞬表示され、すぐ終了する
  • 「チェックあり」で「デバッグなしで開始」

まとめ

参考

https://buralog.jp/csharp-console-app-execute-close-immediately-console/
https://rksoftware.hatenablog.com/entry/2020/01/23/205702

Discussion