这个奇怪的lambda C#操作符有什么作用?

时间:2011-04-13 16:48:18

标签: c# lambda

查看一些源代码,我找到了这个运算符

() => { }

从阅读MSDN我现在知道它是lambda运算符,但它对(}通过{}的影响是什么?它用作类构造函数的参数。

5 个答案:

答案 0 :(得分:13)

它是一个Action(无参数,无参数)委托,其主体不执行任何操作。当需要非空委托时可能很有用(可能是为了简化回调或事件调用,因为在null上调用是一个错误),但你没有任何具体要做。

答案 1 :(得分:7)

它可以被称为空委托。它什么都不做,但是在不检查null的情况下调用它是安全的。占位符排序。

我这样用:

    event Action SafeEvent = () => { };

    event Action NullableEvent;        

    void Meth()
    {
        //Always ok
        SafeEvent();

        //Not safe
        NullableEvent();

        //Safe
        if (NullableEvent != null)
            NullableEvent();
    }

答案 2 :(得分:3)

它可能是构造函数中Action的参数。通过执行() => { },为对象提供一个有效的Action来执行,在调用时不执行任何操作。

答案 3 :(得分:3)

()参数列表

=> lambda调用

{}执行代码的范围(可选,如果它是单行代码)

答案 4 :(得分:2)

这可能会帮助您更清楚地理解......

  

()=> {}

相当于

  

function(){}

另一个例子:

  

(i)=> {i + = 1; }

相当于

  

function(int i){i + = 1; }