Передача функции с аргументами делегату, не ожидающему ничего - PullRequest
2 голосов
/ 04 июня 2011

Я знаю, что в Python вы можете использовать functools.partial для передачи объекта функции с некоторыми или всеми уже определенными параметрами.

Есть ли способ сделать это в C #? Я хотел бы сделать следующее: class1.MethodTakingAMethodParameter(3, "foo", class1.MethodToPass(param1, param2, param3));

Для делегата типа delegate void Blah().

1 Ответ

2 голосов
/ 04 июня 2011

Вы можете использовать лямбда-выражения для задания некоторых параметров:

Action paramlessDelegate = ()=>MyFunc(value1,value2,value3)

Или, если вы хотите поместить значение только в несколько параметров:

Action<int> oneParamDelegate = (remainingParam)=>MyFunc(value1, remainingParam, value3)

В вашем примере:

class1.MethodTakingAMethodParameter(3, "foo", ()=>class1.MethodToPass(param1, param2, param3));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...