2

C# コンソール アプリケーションに次のコードがあります。

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Hello...");
    }
}

このアプリを実行するとコマンドプロンプトが表示されて突然消えてしまうのですが、友人の家でアプリを実行するとコマンドプロンプトがPress any key to Continue. その後何かキーを押すとアプリが終了してしまうのですが、私のPCでは と書かないと動きませんConsol.ReadLine()

ユーザーをPress Any Key to Continue回線につなげる設定はありますか?

4

2 に答える 2

5

残念ながらありませんが、デバッグ -> デバッグなし Ctrl+F5で開始すると、その効果が得られます。

明らかに追加できます

Console.Write("\nPress Any Key to Continue");
Console.Readkey();

プログラムの最後に。

コードが常にそのプロンプトを表示することを(ほぼ)確実にしたい場合:

AppDomain.CurrentDomain.ProcessExit += (sender, e) =>
{
    Console.Write("\nPress Any Key to Continue");
    Console.ReadKey();
};

これらの行をメソッドの先頭に置きますMain()

しかし、これは少しやり過ぎだと思います:-) 終了時にキーを要求する終了ハンドラーをインストールします。

さて、本当にやり過ぎてショーをしたい場合は、最大11まで行くことができます:

if (Debugger.IsAttached)
{
    AppDomain.CurrentDomain.ProcessExit += (sender, e) =>
    {
        Console.Write("\nPress Any Key to Continue");
        Console.ReadKey();
    };
}

これは、デバッガーがアタッチされている場合にのみキーを要求します (これらの行もMain()メソッドの先頭に配置する必要があります。他のバージョンを置き換えます)。Start Without Debuggingデバッガーがアタッチされていないため、Visual Studio はユーザーの代わりにそのプロンプトを表示します。

( を使用する代わりに、AppDomain.CurrentDomain.ProcessExitMain() 全体をtry...finallyブロックで保護し、最後に を配置するConsole.*こともできましたが、それは面白くありませんでした :-) )

于 2013-08-18T15:13:57.160 に答える
0

消えるの正しい行動です。このように表示したい場合は、追加するだけ Console.ReadKey();です もちろん、前にいくつかのメッセージを追加できます(「任意のキーを押してください...」など)。

于 2013-08-18T15:17:02.040 に答える