Передача функции с аргументами делегату, ожидающему none

#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. Ого, это здорово! Я думаю, что лямбды — это то, на что мне нужно обратить больше внимания.