2012-02-02 58 views
1

我有以下控制檯應用程序:到Console.ReadLine()替代

private static bool run = false; 

static void Main(string[] args) 
{ 
    int choice = 0; 

    while (!run) 
    { 
     Console.WriteLine("\n\t\t Press '1', '2' or '3' to continue"); 

     choice = int.Parse(Console.ReadLine()); 

     switch (choice) 
     { 
      case 1: 
       { 
        Console.Clear(); 
        Console.WriteLine("\n\t\t you pressed 1"); 
       } 
      case 2: 
       { 
        Console.Clear(); 
        Console.WriteLine("\n\t\t you pressed 2"); 
       } 
      case 3: 
       { 
        Console.Clear(); 
        Console.WriteLine("\n\t\t you pressed 3"); 
       } 
      default: 
       { 
        Console.Clear(); 
        Console.WriteLine("\n\t\t Invalid key"); 
        break; 
       } 
     } 
    } 

    Console.ReadLine(); 
} 

然而,利用該代碼:

choice = int.Parse(Console.ReadLine()); 

我希望有這樣,當用戶按下1個鍵或者2或3,相應的代碼將立即執行,而不是在您按下所需的鍵後按Enter鍵。有什麼替代品?

任何幫助/引導/提示是極大的讚賞, 感謝

+0

http://msdn.microsoft.com/en-us/library/system.console.readkey.aspx – 2012-02-02 01:55:09

回答

12

如何ReadKey呢?

+0

你能給我一個例子,說明如何使用ReadKey和這行選擇= int.Parse(Console.ReadLine ());謝謝 – Ari 2012-02-02 02:07:17

+1

@Ari:'ReadKey'返回一個'ConsoleKeyInfo',你可以直接切換它的'Key'而不需要進行任何解析爲整數。如果你真的必須解析一下你可以解析'KeyChar'的東西... ... – 2012-02-02 02:21:00

+0

@Ari:...但是再次,你可以直接開啓字符。 – 2012-02-02 02:29:56