Я читал о делегатах и лямбда-выражениях, но этот код по-прежнему магия для меня.Понимание выражения лямбда
OnFailure FailureCallback(string failedFunction){
return failureResponse => Console.Error.WriteLine("Failed to " + failedFunction + " due to: " + failureResponse.Message);
}
Где OnFailure является делегат с подписью:
public delegate void OnFailure(FailureResponse failureResponse);
И FailureResponse это класс, который преформ действия с ответом отказа.
Что делает «failResponse» появляется из ниоткуда при обратном вызове? Это не параметр и не объявлен нигде, но он используется как параметр для выражения лямбда.
О, и все? Первый параметр делегата делегата, а затем его использование для выражения лямбда? – BadVolt
То есть, да. В этом конкретном синтаксисе это выглядит так необычно. В качестве упражнения вы можете использовать R # для преобразования лямбда в локальную переменную. Это будет очень очевидно, что происходит. Метод неверно назван, кстати. Его следует называть 'GetFailureCallback'. Может быть, это добавило путаницы. – usr