42

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

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

12 回答 12

95

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

static void Main(string[] args)
{
    StringAddString s = new StringAddString();
    Console.Read();            
}
于 2013-06-06T02:37:37.537 回答
31

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

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

就像其他答案所说的那样,调用Console.ReadLine()将保持窗口打开,直到按下回车键,但Console.ReadLine()只有在附加了调试器时才会调用。

于 2013-11-05T08:01:48.127 回答
22

我知道有两种方法

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

2) 在调试器之外运行,CONTROL-F5这会在 Visual Studio 之外打开一个控制台窗口,完成后该窗口不会关闭。优势,您不必更改代码。缺点,如果有异常,它不会进入调试器(但是当你得到异常时,你可以简单地在调试器中重新运行它)

于 2013-06-06T02:57:53.900 回答
18
Console.ReadKey(true);

这个命令比 readline 好一点,它只在你按回车时通过,并且 true 参数在读取结果时也会隐藏丑陋的闪烁光标 :) 然后任何击键都会终止

于 2015-01-13T12:38:19.307 回答
13

你忘了调用你的方法:

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

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

Console.WriteLine(string.Join(",", strings2));
于 2013-06-06T02:40:18.060 回答
10

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

步骤 1. 在主线程开始时创建 ManualRestEvent

ManualResetEvent manualResetEvent = new ManualResetEvent(false);

第2步 。等待手动重置事件

manualResetEvent.WaitOne();

步骤 3.停止

manualResetEvent.Set();
于 2017-03-17T12:46:53.107 回答
6

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

于 2017-01-29T18:31:50.663 回答
5

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

于 2019-07-22T16:06:21.050 回答
2

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

于 2013-06-06T14:43:14.500 回答
2

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

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

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

system("pause");

按 ctrl+f5 运行应用程序。

于 2019-02-01T10:20:00.270 回答
1

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

于 2013-07-06T21:18:55.480 回答
-1

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

while (true) 
{
     <INSERT CODE HERE>
}

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

于 2019-10-30T20:45:46.307 回答