当我运行程序时,控制台窗口似乎运行并关闭。如何保持开放,以便我可以看到结果?
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();
}
}
答案 0 :(得分:74)
将Console.Read()作为程序的最后一行。这将阻止它关闭,直到你按一个键
static void Main(string[] args)
{
StringAddString s = new StringAddString();
Console.Read();
}
答案 1 :(得分:29)
如果你想在调试时保持打开状态,但在不调试时仍然让它正常关闭,你可以这样做:
if (System.Diagnostics.Debugger.IsAttached) Console.ReadLine();
与其他答案一样,对Console.ReadLine()
的调用将使窗口保持打开状态,直到按下Enter键,但只有在附加调试器时才会调用Console.ReadLine()
。
答案 2 :(得分:19)
我知道有两种方式
1)Console.ReadLine()
在程序结束时。缺点是,您必须更改代码并且必须记住将其取出
2)在调试器CONTROL-F5
之外运行,这将在visual studio之外打开一个控制台窗口,该窗口在完成时不会关闭。优点,您无需更改代码。缺点是,如果存在异常,它将不会进入调试器(但是当您获得异常时,您只需在调试器中重新运行它)
答案 3 :(得分:12)
Console.ReadKey(true);
这个命令比readline更好一点,只有当你按Enter键时才会通过,而true参数在读取结果时也会隐藏丑陋闪烁的光标:)然后任何按键终止
答案 4 :(得分:10)
你忘了打电话给你的方法:
static void Main(string[] args)
{
StringAddString s = new StringAddString();
s.AddString();
}
它应该停止你的控制台,但结果可能不是你所期望的,你应该稍微改变你的代码:
Console.WriteLine(string.Join(",", strings2));
答案 5 :(得分:5)
在Console.ReadKey();
方法的最后一行写下main()
。此行无法完成控制台。我希望它会对你有所帮助。
答案 6 :(得分:3)
您可以在不需要用户输入的情况下处理此问题。
步骤1.在主线程的开头
创建一个ManualRestEventManualResetEvent manualResetEvent = new ManualResetEvent(false);
第2步。等待ManualResetEvent
manualResetEvent.WaitOne();
步骤3.停止
manualResetEvent.Set();
答案 7 :(得分:1)
最后使用Console.Readline()。在手动关闭之前,您的代码不会关闭。由于Readline等待输入需要为您的代码输入,因此您的控制台将打开,直到您输入一些输入。 / p>
答案 8 :(得分:0)
确保使用Console.ReadLine();
保持前面的Console.WriteLine("");
消息不被关闭。
答案 9 :(得分:0)
对于可视c#控制台应用程序,请使用:
Console.ReadLine();
Console.Read();
Console.ReadKey(true);
对于可视c ++ win32控制台应用程序使用:
system("pause");
按ctrl + f5键运行该应用程序。
答案 10 :(得分:0)
如果您使用Visual Studio,只需使用Crtl + F5(而不是F5)运行应用程序。完成执行后,这将使控制台保持打开状态。
答案 11 :(得分:0)
为了能够在不关闭输入的情况下为其提供输入,您可以将代码封闭在while循环中
while (true)
{
<INSERT CODE HERE>
}
它将继续在Console.ReadLine();
处停止,然后在您输入内容时执行另一个循环。