我有一个基本的控制台应用程序。用户可以从编号的菜单1-5中进行选择。如果他们按ESC,程序将关闭,但如果他们没有按ESC,switch
用于确定他们选择了哪个选项(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
?
答案 0 :(得分:3)
您可以使用menuOption = option.KeyChar.ToString();
答案 1 :(得分: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())