理解c# lambda表达式

最初单语句方法使用委托的方法如下例所示:

       delegate int CalculDelegate(int x, int y);
        private int Add(int x, int y)
        {
            return x + y;
        }
        public void Calculate()
        {
            CalculDelegate addDelegate = new CalculDelegate(Add);
            int sum = addDelegate(1, 2);
        }

其中Add是单语句方法。

后来引入匿名方法,Add方法就省了,上述代码演变成如下所示:

delegate int CalculDelegate(int x, int y);

public void Calculate()
        {
            CalculDelegate addDelegate = delegate (int x, int y) { return x + y; };
            int sum = addDelegate(1, 2);
        }

再后来引入lambda表示式,形式更简洁,如下:

delegate int CalculDelegate(int x, int y);

 public void Calculate()
        {
            CalculDelegate addDelegate = (x, y) =>  x + y;
            int sum = addDelegate(1, 2);
        }

其中“=>"读为“goes to"

再后来引入Func<>,连定义委托也省了,演变成如下:

 public void Calculate()
        {
             Func<int, int, int> addDelegate = (x, y) => x + y;
            int sum = addDelegate(1, 2);
        }

注意Func的最后一个参数代码返回。

 

多语句方法支持

当然,lambda表示式也可以支持多语句方法,如下例 :

 public void Calculate()
        {
            Func<int, int, int>  addDelegate = (x, y) => 

             {

              x=2*x;

             y=2*y;

              return     x + y;

             }
            int result = addDelegate(1, 2);
        }

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值