2012-07-16 1145 views

回答

391
Console.ReadLine(); 

Console.ReadKey(); 

ReadLine()等待ReadKey()等待任何鍵(除修改鍵)。

編輯:偷走達林的鑰匙符號。

+2

「‘控制檯’不包含在asp.net 5控制檯應用程序的‘ReadKey’的定義」來了,去這裏: http://stackoverflow.com/questions/30588478/console-does -not-contain-a-definition-for-read -key-in-asp-net-5-console-app – 2015-11-30 17:16:38

+9

這實際上是一個不好的答案,因爲它給OP提供了他們所要求的而不是他們需要的東西。告訴OP打破他的軟件來解決他啓動它的方式只是一個不好的建議。除此之外,它使得不可能在流水線中使用該程序。 – 2016-01-14 23:47:35

+1

Silva的回答比較好,可以用Control-F5運行 – Del 2016-08-04 14:19:18

33

Console.ReadLine()等待用戶輸入Console.ReadKey等待任何密鑰。

23

用途:

Console.ReadKey(); 

對於它關閉時,有人按下任意鍵,或:

Console.ReadLine(); 

因爲當用戶鍵入的東西,並按下回車。

113

你可以只編譯(開始調試)與按Ctrl + F5 工作。

試試吧。我總是這樣做,控制檯向我展示了我的結果。不需要額外的代碼。

+12

Ctrl + F5重建應用程序(如果有必要),並在不調試*的情況下運行*(即調試程序未附加),在新的控制檯窗口中,在應用程序退出後,會運行「暫停」命令或類似命令同一個窗口。 '暫停'用於給你一個機會在控制檯窗口關閉之前讀取輸出。當從命令行使用應用程序時,不需要暫停,因爲命令完成後控制檯窗口不會關閉。 – 2014-08-05 21:36:45

+2

@ToolmakerSteve它被提升了,因爲它是OP有問題的最佳解決方案。 – 2016-01-14 23:48:11

+1

@ToolmakerSteve,這是我正在尋找。我知道ReadLine()和Read()並希望避免這種情況。 – VivekDev 2016-01-24 03:24:17

34

嘗試Ctrl + F5鍵在Visual Studio中運行您的程序,這將增加一個暫停使用「按任意鍵繼續......」自動無任何到Console.ReadLine()或ReadKey()函數。

6

或者,您可以使用下面的代碼延時關閉:

System.Threading.Thread.Sleep(1000); 

注意Sleep使用毫秒。

+8

Thread.Sleep(TimeSpan.FromSeconds(1))如果任何人想要用秒數 – 2016-09-22 17:06:53

+2

'System.Threading.Thread.Sleep(-1)'無限期睡眠。 – Acidic 2017-08-14 12:24:23

12

Ctrl + F5更好,因爲你不需要額外的線。 最後,您可以進入和退出運行模式。

但是,當你開始使用F5的程序,把一個破發點,你可以調試你的應用程序,並且讓你的其他優點。

4

提到的那些解決方案會改變程序的工作方式。

你可以關閉過程中把#if DEBUG#endif周圍的控制檯呼叫,但如果你真的想阻止窗口從Visual Studio在你的開發機器上只關閉或者VS,不僅在運行,如果你明確地配置,並且您不希望從命令行運行時令人討厭的'Press any key to exit...',要走的路是使用System.Diagnostics.Debugger API。

如果您只希望在DEBUG中工作,只需將此代碼包裝在[Conditional("DEBUG")] void BreakConditional()方法中即可。

// Test some configuration option or another 
bool launch; 
var env = Environment.GetEnvironmentVariable("LAUNCH_DEBUGGER_IF_NOT_ATTACHED"); 
if (!bool.TryParse(env, out launch)) 
    launch = false; 

// Break either if a debugger is already attached, or if configured to launch 
if (launch || Debugger.IsAttached) { 
    if (Debugger.IsAttached || Debugger.Launch()) 
     Debugger.Break(); 
} 

這也適用於調試需要提升特權或需要能夠提升自身的程序。

4

如果您不希望程序關閉,即使用戶按任意鍵;

while (true) { 
     System.Console.ReadKey();     
};//This wont stop app 
+0

這造成了一個無限循環。幾乎從來不是一個好主意。 – 2017-09-22 21:12:31

+0

它在readkey上等待不會連續循環,這有它的用處。如果您有其他處理來控制應用程序,這是一個可行的解決方案。無限和超越! :) – Hariboo 2017-09-26 09:49:13

+0

假設它檢測到按鍵,那麼是什麼?它只是等待下一個按鍵。它不會脫離循環。只要說「使用'System.Console.Readkey()'」而不是將問題與一個破碎的例子混淆。即使如此,使用無限循環應該像使用goto一樣對待。能夠在需要時很高興,但不要僅僅因爲可以!最後,在一個不需要它的應用程序中插入'按任意鍵繼續'是一個kludgy黑客。這不是OP問題的解決方案。在這個問題的所有答案都是錯誤的,除了由@SlobodanStanković – 2017-09-26 11:21:42

相關問題