当前位置: 首页 > 编程语言 > C# > 正文

[C# 3.0 入门] [第一章 Lambda表达式] 第二节:Lambda表达式带来了什么

时间:2010-06-13 博客园 五斗米

本次的内容,主要是针对已经学习过C# 2.0的程序员读者的,前提是已经知道什么是匿名方法。如果还不清楚,请先阅读“连载:C# 2.0入门”(这篇会在今后翻译)。

好的,现在进入正题。

Lambda表达式(λ表达式),用一句话来解释,(不算很严谨)就是使匿名方法文字上更短的语法。虽然这样说,单“仅仅是文字上的变化,源代码的性质没有变”这样的想法也是一种误解。规模变化了,其性质也会变化。例如,实验室的烧杯中产生的现象,不一定会在大型的工厂里产生。同样的道理也适用于源代码。

那么,就体验一下Lambda表达式吧。

以下,使用具体的code来说明一下,不是实际工程中的代码,而是实际代码使用C# 2.0重写的。

前一阵子笔者实际写的code中,有一个菜单,能够选择的下拉菜单。菜单项是下面这样定义的:

1public delegate bool SimpleMenuAction();
2
3public class  MenuItemA // 菜单项
4{
5  public readonly string Name; // 名字
6  public readonly SimpleMenuAction Action; //执行内容
7
8  public MenuItemA(string name, SimpleMenuAction action)
9  {
10    Name = name;
11    Action = action;
12  }
13}
14

List 1 菜单项的定义

与之相对应,以下是菜单项的数组。

1private static MenuItemA[] Menu Items1 =
2  {
3    new MenuItemA("选择项1", 执行方法),
4    new MenuItemA("选择项2", 执行方法),
5    new MenuItemA("选择项3", 执行方法),
6  };
7