C语言C# 三.0言语增强学习笔记(2)

      后边复习了”隐式类型局地变量”,”增添方法”,”对象和聚合起初化器”,”匿名格局”知识点。见C#
三.0语言增强学习笔记(1)

此间大家其余复习C# 三.0的别的新个性:拉姆da表明式

初识Lambda表达式:

使用C#C语言, 二.0中的匿名情势寻找”内部含有abc子串的具备字符串”: 

List.FindAll(
      delegate(string s){
      return s.Indexof(“abc”)>0}
)

 使用C# 三.0中的Lambda表明式查找”内部含有abc子串的有着字符串”:

List.FindAll(s=>s.IndexOf(“abc”)>0)

 

拉姆da表明式简介

为啥Lambda表达式比匿超情势更好?

C# 贰.0的匿有名的模特式允许大家以内联的章程来促成委托实例,而C#
3.0的Lambda表达式运行大家利用壹种更接近人的思虑,更自然的方法来促成类似于匿名情势同样的作用。

拉姆da表明式格式

(参数列表)=>表明式可能语句块

能够有多个参数,一个参数,也许无参数。参数类型能够隐式也许显式。例如:

(x,y)=>x*y //多参数,隐式类型=>表明式
x=>x*10 //单参数,隐式类型=>表明式
x=>{return x*10} //单参数,隐式类型=>语句块
(int x) => x*拾 //单参数,显式类型=>表明式
(int x) =>{return x*十} //单参数,展现档次=>语句块
()=>{Console.WriteLine()}//无参数

注意:

一.Lambda表明式的参数类型能够归纳,因为能够根据使用上下文实行预计。

2.拉姆da表明式的主脑(body)能够是表明式,也得以是语句块。

叁.Lambda表达式传入的实参将涉足项目测度,以及艺术重载辨析。

4.拉姆da表明式表明式和发挥式体能够被转换来表明式树。

 

拉姆da表明式与寄托项目

Lambda表达式L能够被转换来委托类型D,须要满意以下标准:

一.L和D拥有相同的参数个数

二.L参数类型要与D参数类型相同。注意隐式类型要参加项目辨析。

三.D的回来类型与L相同,无论L是表明式,依旧语句块。