“Lambda 表达式”是一个匿名函数,它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型。
定义一下类
Class1
1 class Class1
2 {
3 //构造函数
4 Class1(int a1,int b1)
5 {
6 a = a1;
7 b = b1;
8 }
9 //以匿名函数为参数的方法
10 public bool Compare(Mydel md)
11 {
12 return md(a,b);
13 }
14 //定义两个私有成员,用在Compare函数中
15 private int a;
16 private int b;
17 //定义Compare参数的委托类型,就是两个int型参数,返回bool
18 public delegate bool Mydel(int a,int b);
19 //实例化委托对象
20 public static bool XX(int a,int b)
21 {
22 return (b==a);
23 }
24 }
现在可以使用三种方法调用Compare函数
1.定义一个委托(C#1.0)
实例化委托md
static void Main(string[] args)
{
Mydel md = new Mydel(XX);
Class1 C = new Class1(3,4);
bool isCompare = C.Compare(md);
Console.WriteLine(isCompare);
}
2.定义一个匿名函数(C#2.0)
匿名函数
static void Main(string[] args)
{
Class1 C = new Class1(3,4);
bool isCompare = C.Compare(delegate(int a, int b) { return a == b; });
Console.WriteLine(isCompare);
}
3.使用Lambda表达式(C#3.0)
Lambda表达式
static void Main(string[] args)
{
Class1 C = new Class1(3,4);
bool isCompare = C.Compare((x,y)=>x==y);
Console.WriteLine(isCompare);
}

浙公网安备 33010602011771号