2013-06-06 78 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(); 
相關問題