2016-10-18 22 views
-2

こんにちは私は指示のメニューを作ろうとしており、指示番号を入力として受け取り続けたいと思っています。ここに私のコードは次のとおりです。コンソールアプリケーションのC#メニュー

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を選択した場合、私は次のステップに行くことができますか?

+0

使用Console.ReadLine – Steve

+0

ReadKeyは*戻り値を*、より下記を通過するために、値を比較し、入力された値を参照することができます: //msdn.microsoft.com/en-us/library/471w8d85(v=vs.110).aspxこの値(またはそのプロパティ)を比較に使用できます。 (BTW、比較は '=='ではなく '='で行われます) – David

答えて

0

あなたは間違ったやり方で、関数呼び出しによって返された値を格納していないので、その値を全く比較できません。第二に、Davidが言及したように、C#では==を使用し、代入演算子である=は使用しません。一般的な例は、プログラムの終了時にConsole.ReadKey()を使用する閉じた端末を防止するために、及びそのデータを覚えている

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

、そうでない場合は次のコードを使用し、これを用いて

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

を検討紛失した。 HTTPS:あなたは、常に

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

本当に有益でした –

0

を使用して、stringを使用して、任意の方法で検証/処理することができます。

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

ConsoleKey列挙型の完全なドキュメントは、次のとおりです。

とにかく、あなたはまた、あなたが、例えばこのような何かを行うことができますので、それはConsoleKeyInfoを返しConsole.ReadKey()

の戻り値を使用することができますここでは:https://msdn.microsoft.com/en-us/library/system.consolekey(v=vs.110).aspx

関連する問題