CHEETAH.W

静心积累

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
int[] oddNums = // using named method
Common.FilterArrayOfInts(nums, Application.IsOdd);
int[] oddNums = // using anonymous method
Common.FilterArrayOfInts(nums, delegate(int i){return((i & 1) == 1);});
int[] oddNums = // using lambda expression
Common.FilterArrayOfInts(nums, i => ((i & 1) == 1));

第一种写法是最传统的。这是传入的方法定义。可以看到第二个参数是个委托。(有点像C++里面的函数指针)

public class Application
{
    public static bool IsOdd(int i)
    {
        return ((i & 1) == 1);
    } 
}

第二种写法是匿名委托。

而第三种写法则是lambda expression。这三种方法功能完全一致。写法不同而已。因此,理解的lambda expression其实就是个匿名委托的简单写法。他的形式就是 x => x。如果传入的是两个参数,那么形式为(x,y)=>x==y。

posted on 2012-08-08 17:18  Ethan.Wong  阅读(192)  评论(0编辑  收藏  举报