Jam*_*mes 3 .net c# lambda anonymous-methods
最近,我读了"Christian Cage的专业C#5.0和.NET 4.5.1; Jay Glynn; Morgan Skinner"一书.我对此感到困惑:"以防万一,匿名方法的语法比lambda表达式的语法更简单".
第8章中的详细信息:Delegates,Lambdas和Events
LAMBDA EXPRESSIONS"注意lambda表达式的语法比匿名方法的语法简单.在要调用的方法有参数但不需要参数的情况下,匿名方法的语法更简单,因为你不能在这种情况下需要提供参数."
任何人都可以解释/示例为什么匿名方法在这种情况下不需要提供参数?
因为这是有效的
Func<int,int> f = delegate { return 47; }
Run Code Online (Sandbox Code Playgroud)
但事实并非如此
Func<int,int> f = () => 47;
Run Code Online (Sandbox Code Playgroud)
使用匿名方法语法,如果不需要,可以省略参数.但是在lambda表达式中,你必须提供参数.
文档中也说明了这一点:
有一种情况是匿名方法提供lambda表达式中找不到的功能.匿名方法使您可以省略参数列表.这意味着可以将匿名方法转换为具有各种签名的委托.
| 归档时间: |
|
| 查看次数: |
214 次 |
| 最近记录: |