我有一个带有这个签名的函数:
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/