如何保持控制台窗口打开

当我运行我的程序时,控制台窗口似乎运行和关闭。 如何让它保持打开,这样我才能看到结果?

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

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

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

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

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

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

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

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

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

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

我知道有两种方法

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

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

 Console.ReadKey(true); 

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

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

您无需用户输入即可处理此问题。

步骤1.在主线程的开头创建一个ManualRestEvent

 ManualResetEvent manualResetEvent = new ManualResetEvent(false); 

第2步 。 等待ManualResetEvent

 manualResetEvent.WaitOne(); 

第3步。停止

 manualResetEvent.Set(); 

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

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