C_3.0新特性.pptVIP

  • 2
  • 0
  • 约1.19万字
  • 约 33页
  • 2016-12-21 发布于江苏
  • 举报
Lambda 中的类型推理 – 在编写Lambda 时,通常不必为输入参数指定类型,因为编译器可以基于Lambda 主体、基础委托类型以及C# 3.0 语言规范中描述的其他因素推断类型。 – 对于大多数标准查询运算符,第一个输入是源序列中的元素的类型。因此,如果要查询IEnumerablePerson,则输入变量将被推断为Person 对象 var results = people.Where(p = p.LastName == White); Lambda 的一般规则如下: Lambda 包含的参数数量必须与委托类型包含的参数数量相同。 Lambda 中的每个输入参数必须都能够隐式转换为其对应的委托参数。 Lambda 的返回值(如果有)必须能够隐式转换为委托的返回类型。 请注意,Lambda 表达式本身没有类型,因为通用类型系统没有“Lambda 表达式”这一内部概念。但是,有时会不正式地论及Lambda 表达式的“类型”。 在这些情况下,类型是指委托类型或Lambda 表达式所转换为的Expression 类型。 Lambda 表达式中的变量范围 – Lambda 可以引用“外部变量”,这些变量位于在其中定义Lambda 的封闭方法或类型的范围内 – 将会存储通过这种方法捕获的变量以供在Lambda 表达式中使用,即使变量将以其他方式超出范围或被作为垃圾回收 – 必须明确

文档评论(0)

1亿VIP精品文档

相关文档