简体   繁体   中英

Issue related to a console application in C#/NET

I have the following code in a C# console application:

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

When I run this application, the command prompt appears and suddenly disappear, but I have seen at my friend's house when I run the application, the command prompt asks to Press any key to Continue . When I press any key after then the application terminates.., but in my PC it doesn't work without writing Consol.ReadLine() .

Is there a setting to get the user to the Press Any Key to Continue line?

Sadly no, but if you Debug->Start Without Debugging Ctrl+F5 it will make that effect.

Clearly you could add

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

at the end of your program.

If you want to be (nearly) sure that your code will always show that prompt:

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

Put these lines at the beginning of your Main() method.

But I think this is a little overboard :-) It installs an exit handler that will ask for a key on exit.

Now, if you want to really really go overboard and show, you can go up to eleven:

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

This will ask for the key only if the debugger is attached (even these lines have to be put at the beginning of the Main() method. They replace the other versions). With Start Without Debugging the debugger isn't attached, so Visual Studio will show its prompt instead of yours.

(Instead of using the AppDomain.CurrentDomain.ProcessExit , you could have protected the whole Main() with a try...finally block, and in the finally put the Console.* , but that wasn't funny :-) )

Disappearing is the correct behaviour. If you want it to appear this way just add Console.ReadKey(); Of course you can add some message before ("Press any key...") etc.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM