0

私はc#で次のコードを書きましたが、コードにエラーがあります:

switch (Console.ReadKey(true).KeyChar)
{
    case ConsoleKey.DownArrow:
        Console.SetCursorPosition(x,y);
        break;
}

エラー:

エラー1型'System.ConsoleKey'を'char'に暗黙的に変換できません。明示的な変換が存在します(キャストがありませんか?)

どうしたの?

4

2 に答える 2

4

(を返す)ではなく、(を返す)Keyプロパティが必要です。ConsoleKeyKeyCharchar

疑わしい場合は、コンパイラが型の問題があることを示唆している場合は、期待しているものと実際に得られているものを調べて、それらのどれが期待していないかを判断する必要があります。

于 2012-04-27T17:59:12.293 に答える
2

あなたが必要です

switch (Console.ReadKey(true).Key)
{
    case ConsoleKey.DownArrow:
        Console.SetCursorPosition(x,y);
        break;
}

代わりは。

定数ConsoleKey.DownArrowはタイプですがConsoleKeyConsole.ReadKey(true).KeyCharタイプはcharです。charとは異なるタイプであるためConsoleKey、このコードはコンパイルできません。代わりに、戻り値のKeyプロパティを使用すると、switchステートメントの場合と同じタイプのが得られます。ReadKeyConsoleKey

于 2012-04-27T17:59:01.850 に答える