理解lambda表达式

时间:2015-09-20 11:32:28

标签: c# lambda delegates

我读到了委托和lambda表达式,但这段代码对我来说仍然很神奇。

    OnFailure FailureCallback(string failedFunction){
        return failureResponse => Console.Error.WriteLine("Failed to " + failedFunction + " due to: " + failureResponse.Message);
    }

OnFailure 是代表签名:

public delegate void OnFailure(FailureResponse failureResponse);

FailureResponse 是一个用失败响应预告行动的类。

是什么让“failureResponse”在回调中无处可见?这不是参数,也没有在任何地方声明,但是它被用作lambda表达式的参数。

1 个答案:

答案 0 :(得分:1)

它是lambda表达式参数的声明。它与x中的someSequence.OrderBy(x => x.SomeProperty)相同:long millis = smsInboxCursor.getLong(smsInboxCursor.getColumnIndexOrThrow("date")); String smsDate = (String) DateFormat.format("EEEE, MMMM dd, yyyy h:mm:ss ", new Date(millis));