您好我正在尝试制作一个指令菜单,我希望将指令编号作为输入继续。这是我的代码:
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()
分配一个数字是错误的答案 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()
,以防止终端关闭,并记住数据丢失。您始终可以比较值并查看输入的值,有关详细信息,请参阅以下内容,