“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);

}

 

 

 

 

posted on 2010-05-03 22:58  wanglin1809  阅读(205)  评论(0)    收藏  举报