我有一个带有此签名的功能:

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/

10-12 12:44
查看更多