如何使用字符.尝试解析我的菜单

本文关键字:我的 菜单 何使用 字符 | 更新日期: 2023-09-27 18:31:51

>我创建了一个播放器类,并从该类为我的菜单驱动的播放器系统创建了一个数组,我正在尝试使用我的 GetChar 方法来继续显示提示并读取用户在键盘上键入的任何内容,直到 Char.TryParse 可以将输入转换为字符但是当我使用它时,它只是一遍又一遍地重复错误消息无效输入。

任何帮助将不胜感激

//Returns either a 'C', 'R', 'U', 'D', 'L', or 'X' to the caller
    static char GetMenuItem()
    {
        char menuItem;
        DisplayMenu();
        menuItem = IOConsole.GetChar((Console.ReadLine()));
        while (menuItem != 'C'
            && menuItem != 'L' && menuItem != 'X' && menuItem != 'R' && menuItem != 'U' && menuItem != 'D')
        {
            Console.WriteLine("'nError - Invalid menu item");
            DisplayMenu();
            //menuItem = IOConsole.GetChar((Console.ReadLine()));
        }
        return menuItem;
    }

这是我的 GetChar 方法

public static char GetChar(string prompt)
    {

        char validChar;
        var input = Console.ReadKey();
        while (!Char.TryParse(input.Key.ToString(), out validChar))
        {
            Console.WriteLine("Invalid entry - try again.");
            Console.Write(prompt);
        }
        return validChar;
    }

如何使用字符.尝试解析我的菜单

Console.ReadKey()返回一个ConsoleKeyInfo实例。您可以使用 KeyChar 属性从中访问char。无需打电话TryParse.

您的代码不起作用,因为ConsoleKeyInfo.ToString不会返回您期望的内容。根据文档,它:

返回此实例的完全限定类型名称。