#c# #events #parameters #delegates
#c# #Мероприятия #параметры #делегаты
Вопрос:
Я знаю, что в Python вы можете использовать functools.partial
для передачи объекта function с некоторыми или всеми уже определенными параметрами.
Есть ли способ сделать это в C #? Я хотел бы сделать следующее: class1.MethodTakingAMethodParameter(3, "foo", class1.MethodToPass(param1, param2, param3));
Для такого делегата, как delegate void Blah()
.
Ответ №1:
Вы можете использовать лямбды, чтобы присвоить некоторым параметрам значение:
Action paramlessDelegate = ()=>MyFunc(value1,value2,value3)
Или, если вы хотите поместить значение только в некоторые параметры:
Action<int> oneParamDelegate = (remainingParam)=>MyFunc(value1, remainingParam, value3)
В вашем примере:
class1.MethodTakingAMethodParameter(3, "foo", ()=>class1.MethodToPass(param1, param2, param3));
Комментарии:
1. Ого, это здорово! Я думаю, что лямбды — это то, на что мне нужно обратить больше внимания.