我决定开始学习C#编程,并且其中一件事情就是创建一个“pausec.exe”(类似于pause.exe的克隆版)。它可以正常工作,但是当像下面这样调用它时:
< nul pausec
当程序崩溃时,我收到了以下错误消息(从西班牙语翻译而来):
未处理的异常:System.InvalidOperationException:当任何应用程序没有控制台或控制台输入被重定向到文件时,无法读取键。尝试使用Console.Read。
这是错误出现的堆栈跟踪:
in System.Console.ReadKey(Boolean intercept)
in System.Console.ReadKey()
in pausec.Program.Main(String[] args)
这是我正在运行的代码:
using System;
namespace pausec
{
class Program
{
static void Main(string[] args)
{
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
Console.Write("\n");
}
}
}
我想知道是否有一种解决方法,甚至可以在使用< nul
时忽略ReadKey
?
非常感谢任何帮助。
提前致谢。
更新:找到了一种方法,通过删除拦截(如Alberto Solano所建议的那样),然后在ReadKey
方法后添加Console.Write("\b \b");
它就可以工作了。奇怪的是,当我将应用程序复制到我的桌面时,它不等待用户输入而自动关闭。
更新2:现在它完美地工作了。感谢大家的回答!
pause.exe
是什么吗? - P.Brian.Mackey