public Dictionary<string, Func<List<string>, object>> operations = new Dictionary<string, Func<List<string>, object>>();
operations.Add("myComand", myMethod);
Объясните, пожалуйста, как реализовать такой словарь?
Func<List<string>, object> - делегат, который можно инициализировать методом с прототипом, указанным в делегате Func.
В вашем случае создавайте методы с прототипом:
public object MyMethod(List<string> input)
Далее присваивайте имена методов делегату и помещайте в словарь методом Dictionary.Add();
Как вариант:
public class Commands<T>
{
public readonly Dictionary<string, T> CommandDictionary =
new Dictionary<string, T>();
public void AddCommandToDictionary(string command,
T action)
{
CommandDictionary.Add(command, action);
}
}
Создаете объект:
Commands<Func<bool>> _commands = new Commands<Func<bool>> ();
И добавляете:
_commands.AddCommandToDictionary("input_command", () =>
{
SomeUsefulFunction();
return true;
});
И само использование:
Func<bool> cmd;
if (_commands.CommandDictionary.TryGetValue(input, out cmd))
{
cmd();
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей