我有一个带有此签名的功能:
public DeleteCommand(IService service,
Func<bool> canExecute, Action<ContactModel> deleted)
以及调用它的代码:
Delete = new DeleteCommand(
Service,
()=>CanDelete,
我不明白
()=>CanDelete
的确切含义。作为Func<bool>
,它必须返回一些值。()=>
表示它没有输入参数。但是返回的值是多少?为什么没有
return
在lambda中?像
()=> return CanDelete
一样? 最佳答案
所显示的表达式lambda返回=>
之后的表达式结果。推断出return
关键字,实际上不能明确包含它。语句lambda(格式为() => { someStatements;}
)不会推断返回值,并且如果不是return
,则需要显式的void
。
关于c# - lambda函数如何工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21731963/