首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在使用动作时,lambda表达式中的()是什么意思?

在使用动作时,lambda表达式中的()是什么意思?
EN

Stack Overflow用户
提问于 2009-02-26 14:25:53
回答 5查看 13.7K关注 0票数 26

我粘贴了一些来自Jon Skeet的C# In Depth站点的代码:

代码语言:javascript
运行
复制
static void Main()
{
    // First build a list of actions
    List<Action> actions = new List<Action>();
    for (int counter = 0; counter < 10; counter++)
    {
        actions.Add(() => Console.WriteLine(counter));
    }

    // Then execute them
    foreach (Action action in actions)
    {
        action();
    }
} 

http://csharpindepth.com/Articles/Chapter5/Closures.aspx

请注意这一行:

actions.Add( () )

括号里的()是什么意思?

我见过几个lambda表达式、委托、Action对象的使用等示例,但我还没有看到对此语法的解释。是干什么的呢?为什么需要它?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-02-26 14:28:42

这是声明一个不带参数的lambda表达式的简写。

代码语言:javascript
运行
复制
() => 42;  // Takes no arguments returns 42
x => 42;   // Takes 1 argument and returns 42
(x) => 42; // Identical to above
票数 43
EN

Stack Overflow用户

发布于 2009-02-26 14:27:39

这是一个不带参数的lambda表达式。

票数 6
EN

Stack Overflow用户

发布于 2009-02-26 14:30:06

来自MSDN。表达式lambda采用(输入)=>expression的形式。因此,像()=>expression这样的λ表示没有输入参数。哪个动作的签名不带参数

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/590756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档