如何保持控制台窗口打开

时间:2013-06-06 02:35:37

标签: c# console-application

当我运行程序时,控制台窗口似乎运行并关闭。如何保持开放,以便我可以看到结果?

class Program
{
    public class StringAddString       
    {                        
        public virtual void AddString()
        {
            var strings2 = new string[] { "1", "2", "3", "4", "5","6", "7", "8", "9"};

            Console.WriteLine(strings2);
            Console.ReadLine();
        }
    }

    static void Main(string[] args)
    {          
        StringAddString s = new StringAddString();            
    }
}

12 个答案:

答案 0 :(得分:74)

将Console.Read()作为程序的最后一行。这将阻止它关闭,直到你按一个键

static void Main(string[] args)
{
    StringAddString s = new StringAddString();
    Console.Read();            
}

答案 1 :(得分:29)

如果你想在调试时保持打开状态,但在不调试时仍然让它正常关闭,你可以这样做:

if (System.Diagnostics.Debugger.IsAttached) Console.ReadLine();

与其他答案一样,对Console.ReadLine()的调用将使窗口保持打开状态,直到按下Enter键,但只有在附加调试器时才会调用Console.ReadLine()

答案 2 :(得分:19)

我知道有两种方式

1)Console.ReadLine()在程序结束时。缺点是,您必须更改代码并且必须记住将其取出

2)在调试器CONTROL-F5之外运行,这将在visual studio之外打开一个控制台窗口,该窗口在完成时不会关闭。优点,您无需更改代码。缺点是,如果存在异常,它将不会进入调试器(但是当您获得异常时,您只需在调试器中重新运行它)

答案 3 :(得分:12)

Console.ReadKey(true);

这个命令比readline更好一点,只有当你按Enter键时才会通过,而true参数在读取结果时也会隐藏丑陋闪烁的光标:)然后任何按键终止

答案 4 :(得分:10)

你忘了打电话给你的方法:

static void Main(string[] args)
{          
    StringAddString s = new StringAddString();  
    s.AddString();
}

它应该停止你的控制台,但结果可能不是你所期望的,你应该稍微改变你的代码:

Console.WriteLine(string.Join(",", strings2));

答案 5 :(得分:5)

Console.ReadKey();方法的最后一行写下main()。此行无法完成控制台。我希望它会对你有所帮助。

答案 6 :(得分:3)

您可以在不需要用户输入的情况下处理此问题。

步骤1.在主线程的开头

创建一个ManualRestEvent
ManualResetEvent manualResetEvent = new ManualResetEvent(false);

第2步。等待ManualResetEvent

manualResetEvent.WaitOne();

步骤3.停止

manualResetEvent.Set();

答案 7 :(得分:1)

最后使用Console.Readline()。在手动关闭之前,您的代码不会关闭。由于Readline等待输入需要为您的代码输入,因此您的控制台将打开,直到您输入一些输入。 / p>

答案 8 :(得分:0)

确保使用Console.ReadLine(); 保持前面的Console.WriteLine("");消息不被关闭。

答案 9 :(得分:0)

对于可视c#控制台应用程序,请使用:

Console.ReadLine();
Console.Read();
Console.ReadKey(true);

对于可视c ++ win32控制台应用程序使用:

system("pause");

按ctrl + f5键运行该应用程序。

答案 10 :(得分:0)

如果您使用Visual Studio,只需使用Crtl + F5(而不是F5)运行应用程序。完成执行后,这将使控制台保持打开状态。

答案 11 :(得分:0)

为了能够在不关闭输入的情况下为其提供输入,您可以将代码封闭在while循环中

while (true) 
{
     <INSERT CODE HERE>
}

它将继续在Console.ReadLine();处停止,然后在您输入内容时执行另一个循环。