C# System.InvalidCastException-两种情况下只有一个错误

C# System.InvalidCastException-两种情况下只有一个错误,c#,C#,我不明白为什么我的第一段代码工作得很好,但第二次我尝试将字符串转换为整数。我假设它是随机函数,但我不明白是什么 输入数字后,我的最后一段代码出现以下错误: 未处理的异常:System.InvalidCastException:无法将类型为“System.ConsoleKeyInfo”的对象强制转换为类型为“System.IConvertible” 代码: 返回ConsoleKeyInfo类型,同时返回字符串。Convert无法将ConsoleKeyInfo类型强制转换为int。在最后一行中,您调

我不明白为什么我的第一段代码工作得很好,但第二次我尝试将字符串转换为整数。我假设它是随机函数,但我不明白是什么

输入数字后,我的最后一段代码出现以下错误:

未处理的异常:System.InvalidCastException:无法将类型为“System.ConsoleKeyInfo”的对象强制转换为类型为“System.IConvertible”

代码:


返回ConsoleKeyInfo类型,同时返回字符串。Convert无法将ConsoleKeyInfo类型强制转换为int。

在最后一行中,您调用
Console.ReadKey()
,它返回结构为
System.ConsoleKeyInfo
的对象,而不是
Console.ReadLine()
。无法通过对返回的结构调用
Convert.ToInt32()
将其直接转换为
int

Console.ReadKey()
更改为
Console.ReadLine()
,或者:

int Guess = Convert.ToInt32(Console.ReadKey().KeyChar);

转换为32(Console.ReadLine());与Convert.ToInt32(Console.ReadKey())不同;所以情况不完全一样。啊哈,太好了。谢谢你的解释!
int Guess = Convert.ToInt32(Console.ReadKey().KeyChar);