VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 网站开发 > ASP.net 4.0教程 >
  • asp.net教程之Lambda表达式 匿名方法

Lambda表达式是一种高效的类似于函数式编程的表达式,Lambda简化了开发中需要编写的代码量。Lambda表达式是由.NET 2.0演化过来的,也是LINQ的基础,熟练的掌握Lambda表达式能够快速的上手LINQ应用开发。

20.3.1  匿名方法

在了解Lambda表达式之前,需要了解什么是匿名方法,匿名方法简单的说就是没有名字的方法,而通常情况下的方法定义是需要名字的,示例代码如下所示。
        public int sum(int a, int b)                                                                                        //创建方法
        {
            return a + b;                                                                                                        //返回值
        }
上面这个方法就是一个常规方法,这个方法需要方法修饰符(public)、返回类型(int)方法名称(sum)和参数列表。而匿名方法可以看作是一个委托的扩展,是一个没有命名的方法,示例代码如下所示。
        delegate int Sum(int a,int b);                                                                                  //声明匿名方法
        protected void Page_Load(object sender, EventArgs e)
        {
            Sum s = delegate(int a,int b)                                                                                    //使用匿名方法
            {
                return a + b;                                                                                                //返回值
            };
        }
上述代码声明了一个匿名方法Sum但是没有实现匿名方法的操作的实现,在声明匿名方法对象时,可以通过参数格式创建一个匿名方法。匿名方法能够通过传递的参数进行一系列操作,示例代码如下所示。
            Response.Write(s(5,6).ToString());
上述代码使用了s(5,6)方法进行两个数的加减,匿名方法虽然没有名称,但是同样可以使用“(”“)”号进行方法的使用。
注意:虽然匿名方法没有名称,但是编译器在编译过程中,还是会为该方法定义一个名称,只是在开发过程中这个名称是不被开发人员所看见的。
除此之外,匿名方法还能够使用一个现有的方法作为其方法的委托,示例代码如下所示。
        delegate int Sum(int a,int b);                                                                                  //方法委托
        public int retSum(int a, int b)                                                                                   //普通方法
        {
            return a + b;
        }
上述代码声明了一个匿名方法,并声明了一个普通的方法,在代码中使用匿名方法代码如下所示。
        protected void Page_Load(object sender, EventArgs e)
        {
            Sum s = retSum;                                                                                               //使用匿名方法
            int result = s(10, 10);
        }
从上述代码中可以看出,匿名方法是一个没有名称的方法,但是匿名方法可以将方法名作为参数进行传递,如上述代码中变量s就是一个匿名方法,这个匿名方法的方法体被声明为retSum,当编译器进行编译时,匿名方法会使用retSum执行其方法体并进行运算。匿名方法最明显的好处就是可以降低常规方法编写时的工作量,另外一个好处就是可以访问调用者的变量,降低传参数的复杂度。

相关教程