C#3.0 new features: Lambda expression

  “Lambda 表达式”是一个匿名函数,它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型。

  如:delegate int  del(int i);

  del myDelegate = x=>return x*x;

  创建表达式目录树类型:

  using System.Linq.Expressions;
  Expression<del> = x => x * x;

  Lambda表达式基本
格式为:(input parameters) => expression,当参数只有一个时,括号是可选的,当参数多于一个时,参数是必须的。使用空括号可以表式0个参数类型,如果编译器无法或较难推断
输入类型,就需要为参数指定类型
  lambda语句与表达式类型,但可以存在于括号中,可以包含多条语句,一般不会超过3条。如
delegate int del(int x, int y);
del MyDelegate = (x,y)=>{int temp = y * y; return temp + x;}
    许多标准查询运算符都具有输入参数,其类型是泛型委托的 Func(Of T, TResult) 系列的其中之一。Func(Of T, TResult) 委托使用类型参数来定义输入参数的数量和类型,以及委托的返回类型。Func 
委托对于封装应用于一组源数据中每个元素的用户定义表达式非常有用。例如,假设有以下委托类型:
Func<int, bool> myFunc = x => x == 5;
bool result = myFunc(4); // returns false of course
    当参数类型为 Expression<Func> 时,也可以提供 Lambda 表达式:
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
int oddNumbers = numbers.Count(n => n % 2 == 1);

转载于:https://www.cnblogs.com/penghong/archive/2010/05/27/1741520.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值