我调试我的控制台应用程序,带有来自文件的重定向输入(调试/开始选项/命令行参数 < "filename.in"
)。这意味着我无法在执行后使用通常的ReadLine()
/Read()
/ ReadKey()
来保持控制台窗口的打开状态,因为那样会试图从文件中读取输入。
我当前的解决方案是Sleep()
,您能提供更好的替代方法吗?
using System;
using System.Diagnostics;
using System.Threading;
using static System.Console;
class Test
{
static void Main(string[] args)
{
WriteLine("some output");
if (Debugger.IsAttached) Thread.Sleep(Timeout.Infinite);
}
}
代替检查调试器或#if DEBUG
,我还可以检查一些仅从Visual Studio中传递的其他命令行参数。这样做的好处是无需调试即可运行(但随后我不知道如何重定向输入)。
另一种选择是在最后一个断点,但是然后我的窗口被置于后台,我需要单击以查看它。
最后一种选择是也重定向输出,并在文件选项卡中查看它。
自VS2019起,有一个新选项调试/常规/自动关闭控制台,但是取消选中它似乎根本不起作用吗?
所以我正在寻找更好的方法。不需要上面的using
的加分点:)