我编写的以下 C# 代码出现错误:
switch (Console.ReadKey(true).KeyChar)
{
case ConsoleKey.DownArrow:
Console.SetCursorPosition(x, y);
break;
}
错误:
错误 1 无法将类型“System.ConsoleKey”隐式转换为“char”。存在显式转换(您是否缺少转换?)
怎么了?
你需要
switch (Console.ReadKey(true).Key)
{
case ConsoleKey.DownArrow:
Console.SetCursorPosition(x,y);
break;
}
相反。
常量
ConsoleKey.DownArrow
的类型为 ConsoleKey
,而 Console.ReadKey(true).KeyChar
的类型为 char
。由于 char
和 ConsoleKey
是不同的类型,因此此代码无法编译。相反,如果您使用 ReadKey
返回值的 Key属性,您将得到一个
ConsoleKey
,它与 switch 语句中的 case 类型相同。