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

Orc*_*rca 39 .net c# delegates operators

在Jon Skeet的回答中,我在这里阅读了这条有趣的内容.

有趣的是这一点,他提倡使用代表:

Log.Info("I did something: {0}", () => action.GenerateDescription());
Run Code Online (Sandbox Code Playgroud)

问题是,这是什么()=>运算符,我想知道?我尝试使用谷歌搜索,但由于它是由符号组成的谷歌,实际上并没有多大帮助.我在这里尴尬地错过了什么吗?

Sim*_*ele 55

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

delegate void () { return action.GenerateDescription(); }
Run Code Online (Sandbox Code Playgroud)

您还可以添加参数,以便:

(a, b) => a + b
Run Code Online (Sandbox Code Playgroud)

这大致相当于:

delegate int (int a, int b) { return a + b; }
Run Code Online (Sandbox Code Playgroud)

  • 确实,大致相当.关于lambda语法和匿名方法语法之间的一些细微差别的系列文章从这里开始:http://blogs.msdn.com/b/ericlippert/archive/2007/01/10/lambda-expressions-vs-anonymous - 方法 - 部分 - one.aspx (2认同)

小智 8

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

语法:(输入参数)=>表达式