当前位置:  开发笔记 > 编程语言 > 正文

使用Actions时,lambda表达式中的()含义是什么意思?

如何解决《使用Actions时,lambda表达式中的()含义是什么意思?》经验,为你挑选了3个好方法。

我已经粘贴了Jon Skeet的C#In Depth网站的一些代码:

static void Main()
{
    // First build a list of actions
    List actions = new List();
    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对象的使用等几个例子,但我没有看到这种语法的解释.它有什么作用?为什么需要?



1> JaredPar..:

这是声明不带参数的lambda表达式的简写.

() => 42;  // Takes no arguments returns 42
x => 42;   // Takes 1 argument and returns 42
(x) => 42; // Identical to above


`()`当你需要传递多个参数时是强制性的:`(x,y)=> x*y`

2> bruno conde..:

这是一个没有参数的lambda表达式.



3> svinto..:

我觉得lambas是这样的:

(x)=> {return x*2; }

但只有这一点很重要:

(x)=> {return x*2 ; }

我们需要=>知道它是一个lambda而不是cast,因此我们得到了这个:

x => x*2

(抱歉没有将代码格式化为代码,这是因为你不能在代码中使事情变粗......)

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有