現在DiscordのBOTをC#で開発している者です。
BOTを開発するにあたってBOTの挙動をある程度起動中に変更できるように
Console.ReadLine() で待機させてBOTアプリケーション内の独自コマンドを受け付けるような実装をしているのですが、
デバッグで使用する早期の必要性からコードの見栄えより機能の実現を優先したため、
単純にswitch文で分岐させてcaseには対応コマンドをstringでそのまま実装しているのでコードがかなり酷い状態になっています。(機能自体は正常に動いています)
開発のためにDiscord APIの英語コミュニティにも通っているのですが、案の定「そのswitch文酷すぎワロタ」(意訳)と言われてしまい・・
一応ここに質問する前にググったのですが、意外とアプリケーション独自のCUIコマンドの実装を紹介しているところがないんですね。。
皆さんならどのように独自のCUIコマンドを実装するのでしょうか?
仕様としては
・Console.ReadLine()でコマンドの入力を受け付ける
・何も入力しなかったり誤ったコマンドを入力しEnterすると画面のみ更新される
・対応するコマンドを入力するとそのコマンドに対応した処理を実行する
が満たせれば十分です。
よろしくお願いします。
以下現状の酷いコードです。。。
C#
1public static async Task StartConsole() 2 { 3 try 4 { 5 while (true) 6 { 7 string input; 8 input = Console.ReadLine(); 9 string savewindowtimes_id; 10 switch (input) 11 { 12 default: 13 Program.isShowLog = false; 14 Console.Clear(); 15 VersionHeader(); 16 Console.WriteLine(SystemMessageDefine.CommanderModeGuide_JP); 17 break; 18 19 case "showlog": 20 Console.Clear(); 21 VersionHeader(); 22 Program.isShowLog = true; 23 Console.WriteLine(SystemMessageDefine.LogShowMode_JP); 24 Console.WriteLine(SystemMessageDefine.CommandAccepting_JP); 25 break; 26 case "quit": 27 Console.Clear(); 28 VersionHeader(); 29 Environment.Exit(0); 30 (以下延々と続く)
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/21 10:08