控制台应用程序中的c#菜单

时间:2016-10-18 17:32:11

标签: c# menu

您好我正在尝试制作一个指令菜单,我希望将指令编号作为输入继续。这是我的代码:

 class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("please choose one of the numbers below : "+"\n");
        Console.WriteLine("1.adding new student"+"\n");
        Console.WriteLine("2.adding new course"+"\n");
        Console.WriteLine("3.adding new grade"+"\n");
        Console.WriteLine("4.showing the best student"+"\n");
        Console.WriteLine("5.getting students average"+"\n");
        Console.WriteLine("5.exit"+"\n");
        Console.ReadKey();
        if(ConsoleKey="1")
        {

        }

        Console.ReadKey();
    }

那么如果用户选择数字1,我​​怎么能进入下一步呢?因为我知道为Console.Readkey()

分配一个数字是错误的

2 个答案:

答案 0 :(得分:0)

您可以使用Console.ReadLine()为您提供string,您可以以任何方式验证/处理。

无论如何,您还可以使用Console.ReadKey()

的返回值

它会返回ConsoleKeyInfo,因此您可以执行以下操作:

if (Console.ReadKey().Key == ConsoleKey.D1) { /* key '1' pressed */ }

ConsoleKey枚举的完整文档位于:https://msdn.microsoft.com/en-us/library/system.consolekey(v=vs.110).aspx

答案 1 :(得分:0)

你这样做是错误的,你没有存储函数调用返回的值,这就是你无法比较它的价值的原因。其次,正如大卫所提到的,你在C#中使用==而不是=,这是一个赋值运算符。考虑使用这个,

// For this approach, you would have to limit the values to one character.
if(Console.ReadLine() == "1")
{
    // 1 was pressed
}

否则请使用以下代码

if(Console.ReadKey().Key == ConsoleKey.D1)
{
    // 1 was pressed
}

一个常见示例是在程序结束时使用Console.ReadKey(),以防止终端关闭,并记住数据丢失。您始终可以比较值并查看输入的值,有关详细信息,请参阅以下内容,

  1. Console.ReadKey Method ()
  2. ConsoleKey Enumeration