标签:
基础,你是高手,就请飘走。。。。。。。
平时做项目写代码很少用lambda表达式,特此补充一下,记录下来。
1 什么是lambda表达式?
msdn说法:使用 lambda 表达式,可以写入可作为参数传递或作为函数调用值返回的本地函数
乍一看,真的有点不舒服,语文没学好!!!那是机器翻译的,吼吼。。。。。。。。。。。。。
举个例子呗
lambda表达式 x=>x*x 输入x,输出x*x
如果有这样一个方法:
1 public int getX2(int x){return x*x;}
注意了,是有差别的,表达式怎么可能跟方法一样呢?
C#中有把方法当做参数进行传递!是的,那就是委托。例如:
1 delegate int del(int i); 2 static void Main(string[] args) 3 { 4 del myDelegate = x => x * x; 5 int j = myDelegate(5); //j = 25 6 }
2 lambda 类型
表达式位于 => 运算符右侧的 lambda 表达式称为“表达式 lambda”。 表达式 lambda 会返回表达式的结果,并采用以下基本形式:
(input parameters) => expression
看例子:
static void Main(string[] args) { int x = 5, y = 6; Func<int, int, int> f = ((x1, y1) => x1 + y1); Console.WriteLine(f(x,y).ToString() ); Console.Read(); }
结果多少? 11
Func是一种泛型委托,一般都带有返回值。
语句 lambda 与表达式 lambda 表达式类似,只是语句括在大括号中:
1 (input parameters) => {statement;}
如:
1 static void Main(string[] args) 2 { 3 Action<string> f = (x) => { Console.WriteLine(x); }; 4 f("hello,world"); 5 Console.Read(); 6 }
其中:Action是.NET内部提供的一个无返回值、泛型的委托。
结构如下:
1 delegate void Action(); 2 delegate void Action<in T>(T obj); 3 delegate void Action<in T,in T1>(T obj,T1 obj1); 4 delegate void Action<in T,in T1,in T2>(T obj,T1 obj1,T2 obj2);
.......
就写到这里吧。
标签:
原文地址:http://www.cnblogs.com/jiahuo/p/5648415.html