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

Tan*_*ner 4 c# lambda

看一些源代码,我发现了这个运算符

() => { }
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*ell 13

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


And*_*rey 7

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

我这样使用它:

    event Action SafeEvent = () => { };

    event Action NullableEvent;        

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

        //Not safe
        NullableEvent();

        //Safe
        if (NullableEvent != null)
            NullableEvent();
    }
Run Code Online (Sandbox Code Playgroud)