1

オプション「6」を押すまでアプリケーションが終了しないプログラムを作成しようとしています。以下はサンプル プログラムです。現在、任意のオプションを押すと、対応するメソッドが実行され、実行が完了するとコンソール ウィンドウが閉じます (アプリケーションを終了します)。次のオプションが入力されるまでコンソールを待機させたい。

Console.WriteLine(@"Select one of the following option:                                
                            1-Write Apps 
                            2-Write Drivers
                            3-Write OS
                            4-Write Packages
                            5-All the above
                            6-Exit");
           string strReadKey = Console.ReadKey().KeyChar.ToString();

           int.TryParse(strReadKey, out selectionKey);


           switch (selectionKey)
           {

               case 1:
                   DoApps(reqObj);
                   return;
               case 2:
                   DoDrivers(reqObj);
                   return;
               case 3:
                   DoOS(reqObj);
                   return;
               case 4:
                   DoPackages(reqObj);
                   return;
               case 5:
                   DoAll(reqObj);
                   return;
               case 6:
                   Environment.Exit(0);                       
                   return;
               default:
                   DoAll(reqObj);
                   return;
           }
4

5 に答える 5

0
using System;

namespace LoopUntilSelectionTester
{
    class Program
    {
        static void Main()
        {            
            string key;
            while((key = Console.ReadKey().KeyChar.ToString()) != "6")            
            {
                int keyValue;                
                int.TryParse(key, out keyValue);

                ProcessInput(keyValue);
            }    
        }

        private static void ProcessInput(int keyValue)
        {
            switch (keyValue)
            {
                case 1:
                    DoApps(reqObj);
                    break;
                case 2:
                    DoDrivers(reqObj);
                    break;
                case 3:
                    DoOS(reqObj);
                    break;
                case 4:
                    DoPackages(reqObj);
                    break;
                case 5:
                    DoAll(reqObj);
                    break;
            }
        }
    }
}
于 2013-06-21T02:07:00.173 に答える