C#如何通过Console.ReadKey()获取是否有键按下返回bool值?

我想做一个判断就比如if(!Console.ReadKey())...但是肯定这样是不行的,然后我就用下面的方法:if(!Convert.ToBoolean(Consta... 我想做一个判断就比如
if(!Console.ReadKey())...但是肯定这样是不行的,然后我就用下面的方法:
if(!Convert.ToBoolean(Constants.key = Convert.ToChar(Console.ReadKey(true))))...
虽然编译通过了,但是运行时按键会出现下面的错误:
“System.InvalidCastException”类型的未经处理的异常在 mscorlib.dll 中发生

其他信息: 无法将类型为“System.ConsoleKeyInfo”的对象强制转换为类型“System.IConvertible”。
求教我该如何处理这种错误?
//如果有键按下或时间超过自动前进时间间隔则终止循环
while(!(Constants.gameover =
!Convert.ToBoolean(Constants.start.AddSeconds(this.gamespeed).CompareTo(DateTime.Now)))
&& !Convert.ToBoolean(Constants.key =
Convert.ToChar(Console.ReadKey(true))));
下面还有的就是if语句对按键的判断操作了。 关键的地方是while语句。你看看吧
展开
 我来答
然后去远足
推荐于2016-10-14 · TA获得超过1万个赞
知道大有可为答主
回答量:4016
采纳率:83%
帮助的人:2431万
展开全部
没明白为什么要“获取是否有键按下返回bool值”。

Console.ReadKey() 这个方法是阻塞的,当没有按键时程序不会往下继续执行,当程序继续执行了说明肯定有按键了啊。
更多追问追答
追问
嗯,我就是想加一个超时判断,在一定的时间内,如果按下键,就终止循环,如果没有按键,就等待按键,直到超出时间,终止。这个意思,有没有什么可行的方法?
追答
多线程?贴你的关键代码上来。
阳光的雷咩咩
2015-03-22 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7819万
展开全部
获取是否有键按下返回bool值是什么意思?解释清楚一点。
追问
嗯,我就是想加一个超时判断,在一定的时间内,如果按下键,就终止循环,如果没有按键,就等待按键,直到超出时间,终止。这个意思,有没有什么可行的方法?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式