【问题标题】:How to keep console window open如何保持控制台窗口打开
【发布时间】:2013-06-01 21:58: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();            
    }
}

【问题讨论】:

    标签: c# console-application


    【解决方案1】:

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

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

    【讨论】:

    • @user1929393 正如 TGH 指出的那样,把它放在你下面static void Main。这是执行的起点。
    • Console.Read() 等待“Enter”键。我使用Console.ReadKey() 表示“按任意键继续...”
    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

      我知道有两种方法

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

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

      【讨论】:

        【解决方案4】:
        Console.ReadKey(true);
        

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

        【讨论】:

          【解决方案5】:

          你忘记调用你的方法了:

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

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

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

          【讨论】:

            【解决方案6】:

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

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

            ManualResetEvent manualResetEvent = new ManualResetEvent(false);
            

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

            manualResetEvent.WaitOne();
            

            步骤 3.停止

            manualResetEvent.Set();
            

            【讨论】:

              【解决方案7】:

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

              【讨论】:

                【解决方案8】:

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

                【讨论】:

                  【解决方案9】:

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

                  【讨论】:

                    【解决方案10】:

                    对于visual c#控制台应用使用:

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

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

                    system("pause");
                    

                    按 ctrl+f5 运行应用程序。

                    【讨论】:

                      【解决方案11】:

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

                      【讨论】:

                        【解决方案12】:

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

                        while (true) 
                        {
                             <INSERT CODE HERE>
                        }
                        

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

                        【讨论】:

                          猜你喜欢
                          • 2014-04-20
                          • 2010-12-26
                          • 1970-01-01
                          • 2011-07-01
                          • 2010-10-02
                          • 2023-03-05
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          相关资源
                          最近更新 更多