()=>的含义C#中的运算符(如果存在)

时间:2010-09-02 14:02:01

标签: c# .net delegates operators

我在Jon Skeet的回答中读到了这条有趣的行here

有趣的是,他主张使用代表:

Log.Info("I did something: {0}", () => action.GenerateDescription());

问题是,这是什么()=>操作员,我想知道?我尝试使用谷歌搜索,但由于它是由符号组成的谷歌,实际上并没有多大帮助。我在这里尴尬地想念一些东西吗?

5 个答案:

答案 0 :(得分:54)

这引入了一个没有参数的lambda函数(匿名委托),它等同于并且基本上是简写:

delegate void () { return action.GenerateDescription(); }

您还可以添加参数:

(a, b) => a + b

这大致相当于:

delegate int (int a, int b) { return a + b; }

答案 1 :(得分:8)

=>这是lambda运算符。当我们没有任何输入参数时,我们只需在lambda运算符之前使用圆括号()

语法: (input parameters) => expression

答案 2 :(得分:3)

这是lambda表达式的示例,您可以了解更多here

答案 3 :(得分:2)

创建指定方法的匿名委托。

或许,在您的情况下,它将是Func<string>

答案 4 :(得分:1)

这是将没有参数的匿名委托作为lambda表达式传递的方法。

与.NET 2.0相似

Log.Info("I did something: {0}", delegate()
            {
                return action.GenerateDescription();
            });