Я пытаюсь подписать делегатов на мероприятие, проводимое в List<KeyValuePair<KeyEnum, Delegate>
Цель состоит в том, чтобы связать серию обработчиков с клавишами клавиатуры и именованными осями, которые представлены в Enums
Диспетчеризация довольно проста, я просто перебираю список KVP, проверяю условие и, если условие выполняется, вызываю делегата просто с помощью member.Value;
Я не столкнулся с какими-либо проблемами с эффективностью во время процессора с этим и на самом деле обнаружили, что в стеке он значительно чище.
Проблема заключается в добавлении делегатов после создания экземпляра. Попытка получить к нему доступ с помощью collection.FirstOrDefault(n=>n.Key == KeyEnum.W).Value+= SomeMethod
не работает, так как Value
только для чтения.
Есть ли способ сделать это, который не требует создания нового KeyValuePair
каждый раз или лучшего решения, чем KeyValuePair
в целом