0

我有一个基本的控制台应用程序。用户可以从编号菜单 1-5 中进行选择。如果他们按 ESC,程序将关闭,但如果他们不按 ESC,switch则 a 用于确定他们通过输入的字符串(1、2、3、4 或 5)选择了哪个选项。

此代码不起作用:

static string mainMenu()
        {
    string menuOption;

        // get user input
        ConsoleKeyInfo option = Console.ReadKey();
        if (option.Key == ConsoleKey.Escape)
        {

           Environment.Exit(0);
        }

        return menuOption = Console.ReadLine();
}

如何获取用户输入的字符串值,menuOption同时检查用户是否按下ESC

4

2 回答 2

3

您可以使用 menuOption = option.KeyChar.ToString();

于 2013-10-11T17:36:27.837 回答
1

如果您的选项只有单个字符,那么最好返回一个字符而不是字符串,然后在字符上使用 switch 语句。你的方法可以是:

static char mainMenu()
{
    ConsoleKeyInfo option = Console.ReadKey();
    if (option.Key == ConsoleKey.Escape)
    {
        Environment.Exit(0);
    }

    return option.KeyChar;
}

然后您可以在 switch 语句中使用它,例如:

char option = mainMenu();
switch (option)
{
    case '1':
        //...........
}

或者直接在 switch 语句中使用该方法,如:

 switch (mainMenu())
于 2013-10-11T17:43:21.440 回答