购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4.4 匿名方法

匿名方法是C# 2.0引入的特性,并通过C# 3.0的Lambda表达式得到了极大的扩展。匿名方法类似于Lambda表达式,但是没有以下特性:

· 隐式类型的参数。

· 表达式语法(匿名方法必须是一个语句块)。

· 在赋值给 Expression<T> 时将其编译为表达式树的能力。

匿名方法的写法是在 delegate 关键字后面跟上参数的声明(可选),然后是方法体。例如:

第一行代码语义上等同于下面的Lambda表达式:

或者更简单地:

匿名方法和Lambda表达式捕获外部变量的方式是完全一样的,而且它们都可以添加 static 关键字获得静态Lambda的行为。

完全省略参数的声明是匿名方法独有的特性(即使委托需要这些参数声明),该特性尤其适用于声明一个具有空事件处理器的事件:

这样,在触发事件时就避免了 null 检查。下面的写法是合法的: pQxtHAO2VkfXWXY1bIQ8SXyeJadwBEHU7YKK4IdK+jH50V2/VQXKvHuNxtiWWzTm

点击中间区域
呼出菜单
上一章
目录
下一章
×