我在C#中编写了以下代码,但出现错误
编码:
switch (Console.ReadKey(true).KeyChar)
{
case ConsoleKey.DownArrow:
Console.SetCursorPosition(x,y);
break;
}
错误:
怎么了?
最佳答案
你需要
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语句中的案例相同。关于c# - 无法将类型 'System.ConsoleKey'隐式转换为 'char',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10355557/