Добрый день, как правильно оформить выполнение команд.
У меня есть строка, в нее я пишу команду и компьютер запускает нужные мне программы.
Сейчас все организовано через if
string command;
if (command == "reboot")
{
//Тут выполняется ребут компьютера.
}
if(command == "music")
{
//Компьютер запускает плеер
}
//И так далее.
Тут просто парочка команд, но если их будет больше то выйдет говнокод с кучей if. Через switch думаю будет тоже самое.
Пробую через Dictionary.
static void CommandList (string command)
{
Dictionary<string, Process> Commands = new Dictionary<string, Process>();
Commands.Add("music", Process.Start(@"E:\YandexDisk\Work\C#\SpeechRecognition\bin\Debug\player\AIMP.exe", "/PLAY"));
foreach(var c in Commands)
{
command = c.Key;
}
}
Правильно ли я делаю? Или есть какой другой способ?
Update.
Может кому будет интересно. Рабочая версия словаря и команд.
static Dictionary<string, ProcessStartInfo> CreateCommands()
{
Dictionary<string, ProcessStartInfo> commands = new Dictionary<string, ProcessStartInfo>();
commands["music"] = new ProcessStartInfo(@"E:\YandexDisk\Work\C#\SpeechRecognition\bin\Debug\player\AIMP.exe", "/PLAY"));
commands["video"] = new ProcessStartInfo("notepad.exe");
return commands;
}
Dictionary<string, ProcessStartInfo> commands = CreateCommands();
string key = Console.ReadLine();
if (commands.ContainsKey(key))
Process.Start(commands[key]);