我在c#中编写了以下代码,但是出现了错误 代码:
switch (Console.ReadKey(true).KeyChar)
{
case ConsoleKey.DownArrow:
Console.SetCursorPosition(x,y);
break;
}
错误:
错误1无法将类型'System.ConsoleKey'隐式转换为'char'。存在显式转换(您是否错过了演员?)
出了什么问题?
答案 0 :(得分:4)
答案 1 :(得分:2)
你需要
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语句中的大小写相同。