匿名方法

匿名方法是c#2.0引入的特性,并通过c#3.0的Lambda表达式得到发展,(请看我的另一片关于Lambda的整理).

匿名方法类似于lambda表达式,但是没有以下特性:

  1. 确定类型的参数
  2. 表达式语法(匿名方法必须是语句块)
  3. 在指定到Expression<T>时,编译成表达式树的功能

写您名方法的方法是:delegate关键字后面跟参数声明(可选),然后是方法体.以下以委托为例:

delegate int Transformer(int i);
View Code

以下是实现和调用匿名方法:

Transformer sqr=delegate(int x){return x*x;};
Console.WriteLine(sqr(3));//9
View Code

第一行代码等于下面的lambda表达式:

Transformer sqr=(int x)=>{return x*x};
//简写成
Transformer sqr=x>x*x;
View Code

完全省略参数是匿名方法----即使委托需要这些参数.

posted @ 2014-10-29 16:59  寒空孤鹰  阅读(223)  评论(0编辑  收藏  举报