这个lambda函数如何工作?

时间:2014-02-12 15:20:20

标签: c# c#-4.0 lambda

我有一个带有此签名的函数:

public DeleteCommand(IService service, 
    Func<bool> canExecute, Action<ContactModel> deleted)

和调用它的代码:

Delete = new DeleteCommand(
                Service, 
                ()=>CanDelete,

我不明白()=>CanDelete究竟意味着什么。作为Func<bool>,它必须返回一些价值。

()=> 

表示它没有输入参数。但是返回的价值是多少?为什么没有return 在lambda?像()=> return CanDelete

这样的东西

1 个答案:

答案 0 :(得分:9)

表达式lambda是您所显示的,它返回=>之后的表达式的结果。推断出return关键字,实际上无法明确包含该关键字。语句lambda(格式为() => { someStatements;}推断返回值,如果不是return则需要显式void