2013-06-06 76 views
22

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

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();    
    } 
} 

回答

9

您忘记调用你的方法:

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

,应立即停止你的控制台,但结果可能不是你所期待的,你应该改变你的代码一点点:

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

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

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

@ user1929393 AS TGH指出,把它放在你的'static void Main'下面。这是执行的起点。 –

+7

'Console.Read()'等待'Enter'键。我使用'Console.ReadKey()'作为“按任意键继续...” –

14

有两种方法,我知道的

1)Console.ReadLine()在程序结束时。缺点是,你必须改变你的代码,并记得把它拿出来

2)在调试器CONTROL-F5之外运行,这将在Visual Studio之外打开一个控制台窗口,并且该窗口在完成时不会关闭。优点是,您不必更改代码。缺点是,如果发生异常,它将不会进入调试器(但是当您确实得到异常时,您可以直接在调试器中重新运行它)

1

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

1

请务必使用Console.ReadLine(); 以使Console.WriteLine("");前面的消息不会关闭。

21

如果你想保持它,当你正在调试打开,但还是让它关闭,通常不进行调试的时候,你可以做这样的事情:

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

像其他答案已经指出,调用Console.ReadLine()将保持窗口打开直到输入被按下,但只有在调试器被连接时才会调用Console.ReadLine()

6
Console.ReadKey(true); 

这个命令是不是当你按下回车键,只有通过更好的ReadLine位,并在读取结果:)那么任何按键终止

1

Console.ReadKey();在真正的参数也隐藏丑陋的闪烁的光标最后一行main()方法。这条线防止完成控制台。我希望它能帮助你。

0

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

步骤1.在主线程

ManualResetEvent manualResetEvent = new ManualResetEvent(false); 

步骤2的开始创建一个ManualRestEvent。等待手动重置事件

manualResetEvent.WaitOne(); 

第3步。停止

manualResetEvent.Set(); 
相关问题