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();
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
как обратиться к элементу словаря по ключу, если ключ -
Есть некий класс, который принимает в конструктор Action<object>Но мне потребовалось передать туда асинхронный метод (то есть Func<object, Task>)
Подскажите, можно ли запустить в VS 2017 проект MVC3? Вроде, все MVC 3 установлен, но необходимые либы не видит
Когда щелкаешь на часы в Windows 10, открывается панелька часов, календарь и события