Эмулятор командной строки. Распознание команд - C#
Формулировка задачи:
Здравствуйте!
Тут такое дело. Дали мне задачку в универе написать эмулятор командной строки любой операционной системы на выбор. Я выбрал Window родной, ибо нет времени разбираться в чем-либо еще. реализовал я пару команд, сделал бесконечный цикл в котором ожидается введение команды. Команда вводится в обычный ReadLine();, а потом... я сделал цикл switch и в нем перебирал команды перебирал.
Проблема, как мне кажется, началась в тот момент, когда команд стало больше. Сначала их было две. Теперь их три, четыре, пять... к ним ключи... свитч начала разрастаться. Ключи реализовал подобным способом. Тоже через свитч.
Вопрос: какую альтернативу switch можно применить в данной ситуации? Может кто сталкивался?
Заранее спасибо.
Решение задачи: «Эмулятор командной строки. Распознание команд»
textual
Листинг программы
using System; /// <summary> /// Интерфейс для утилит командной строк /// </summary> public interface ICommandLineTool { /// <summary> /// Может ли класс запустить данную команду /// </summary> /// <param name="command">Строка. Пример: mkdir temp</param> /// <returns>True если может, False в противном случае</returns> bool CanExecute(string command); /// <summary> /// Запустить /// </summary> /// <param name="command">Команда</param> void Execute(string command); } public class MdDir //: ICommandLineTool { } public class RmDir //: ICommandLineTool { } namespace Ghost { class Program { static void Main() { // создаем список всех команд. string command = null; while ((command = Console.ReadLine()) != null) { // ищем среди команд, ту, которая CanExecute true // Execute() } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д