c# - 这个 lambda 函数是如何工作的?

标签 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

最佳答案

您所展示的表达式 lambda 返回 => 之后的表达式的结果。 return 关键字是推断出来的,实际上不能显式包含。语句 lambda(形式为 () => { someStatements;})推断返回值,并且需要显式的return 如果它不是 void

关于c# - 这个 lambda 函数是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21731963/

相关文章:

c# - 新的动态对象列表<>

c++ - 如何在通用 lambda 中完美转发 `auto&&`?

c# - 使用 linq to entity 获取不同的记录

c#-4.0 - 使用 System.DirectoryServices.AccountManagement 获取职位名称

c#-4.0 - 检查索引中是否存在文档的条件(Lucene.NET)

Java 泛型和流

c++ - 如果仅在 lambda 中使用,则局部静态变量不会在发布版本中初始化

C# System.Diagnostics.Process.Start() 参数

c# - 从 C# 调用 C++ 代码而不创建 dll?

c# - 独特的键值对集合