1. ホーム
  2. c#

[解決済み] 出力が表示されると、コンソールウィンドウがすぐに閉じてしまうのですが?

2022-04-22 06:21:44

質問

のガイドに従ってC#を勉強しています。 MSDN .

さて、先ほど試したのは 例1 ( こちら へのリンクです。 MSDN 出力が表示されると、なぜコンソールウィンドウがすぐに閉じてしまうのでしょうか?

using System;

public class Hello1
{
    public static int Main()
    {
        Console.WriteLine("Hello, World!");
        return 0;
    }
}

解決方法は?

<ブロッククオート

この問題は、Hello World プログラムが表示された後、すぐに終了してしまうことです。

なぜでしょう?

完成しているからです。 コンソールアプリケーションの実行が終了し main メソッドを実行すると、関連するコンソール・ウィンドウは自動的に閉じます。これは期待された動作です。

デバッグのためにウィンドウを開いたままにしたい場合は、キーが押されるのを待ってからアプリを終了してウィンドウを閉じるよう、コンピューターに指示する必要があります。

は、その Console.ReadLine メソッド はその一つの方法です。この行をコードの末尾に追加します。 return 文) を使用すると、アプリケーションが終了する前にキーを押すのを待つようになります。

また、デバッガーを使用せずにアプリケーションを起動する場合は Ctrl + F5 を Visual Studio 環境から実行することができますが、これには、アプリケーションを書くときに自由に使用したいデバッグ機能を使用できない、という明らかな欠点があります。

最良の妥協点は、おそらく Console.ReadLine メソッドをプリプロセッサーディレクティブでラップして、アプリケーションをデバッグするときだけ使用します。次のようなものです。

#if DEBUG
    Console.WriteLine("Press enter to close...");
    Console.ReadLine();
#endif

また、キャッチできない例外が発生した場合、ウィンドウを開いたままにしておきたい場合もあります。そのためには Console.ReadLine(); の中に finally ブロックを作成します。

#if DEBUG
    try
    {
        //...
    }
    finally
    {
        Console.WriteLine("Press enter to close...");
        Console.ReadLine();
    }
#endif