Dam*_*ian 6 c# lambda anonymous-methods anonymous-function
我在关于匿名方法(C#编程指南)的MSDN文档中阅读本文,但我不理解省略参数列表的部分.它说:
有一种情况是匿名方法提供lambda表达式中找不到的功能.匿名方法使您可以省略参数列表.这意味着可以将匿名方法转换为具有各种签名的委托.lambda表达式无法做到这一点.
你能举一个省略匿名方法参数列表的例子吗?
我认为您对lambda 表达式和匿名方法感到困惑。您需要了解的是,lambda 表达式只是语法糖。例如,您可以创建一个匿名方法,该方法接受 2 个整数参数并返回integer
如下所示的值:
Func<int, int, int> func = delegate(int x, int y)
{
return x + y;
};
Run Code Online (Sandbox Code Playgroud)
使用 lambda 语法,您可以将该语句缩短为:
Func<int, int, int> func2 = (x,y) => x + y;
Run Code Online (Sandbox Code Playgroud)
此外,您实际上并不需要将任何参数传递给 lambda 语句。例如,这是完全有效的:
Action act = () => Console.WriteLine("hello world");
Run Code Online (Sandbox Code Playgroud)
因此,lambda 表达式允许您用更少的代码创建匿名方法,并且与匿名方法相比,它们没有任何缺点,因为它们是完全不同的东西。您正在将苹果与橙子进行比较。
归档时间: |
|
查看次数: |
804 次 |
最近记录: |