我有一个带有此签名的函数:
public DeleteCommand(IService service,
Func<bool> canExecute, Action<ContactModel> deleted)
和调用它的代码:
Delete = new DeleteCommand(
Service,
()=>CanDelete,
我不明白()=>CanDelete
究竟意味着什么。作为Func<bool>
,它必须返回一些价值。
()=>
表示它没有输入参数。但是返回的价值是多少?为什么没有return
在lambda?像()=> return CanDelete
?
答案 0 :(得分:9)
表达式lambda是您所显示的,它返回=>
之后的表达式的结果。推断出return
关键字,实际上无法明确包含该关键字。语句lambda(格式为() => { someStatements;}
)不推断返回值,如果不是return
则需要显式void
。