Эмулятор командной строки. Распознание команд - 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()
            }
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.25 из 5
Похожие ответы