Welcome 微信登录

首页 / 网页编程 / ASP.NET / 使用Action、Func,EventHandler,params关键字修饰的参数的匿名委托和Lambda表

使用Action、Func,EventHandler,params关键字修饰的参数的匿名委托和Lambda表2011-12-06使用Action、Func,EventHandler,params关键字修饰的参数的匿名委托和Lambda表达式

在.NET在,我们经常使用委托,委托的作用不必多说,在.NET 2.0之前,我们在使用委托之前,得自定义一个委托类型,再使用这个自定义的委托类型定义一个委托字段或变量。.NET 2.0给我们带来了Action、Func两个泛型委托,.NET3.0给我们带来了Lambda,这一切使得委托的定义和使用变得简单起来。下面的例子中的委托都使用了Lambda表达式。

一.Action系列的泛型委托

Action系列的委托定义的是没有返回值(返回值为void)的委托。它有多个版本包括没有输入参数,1个输入参数,2个输入参数,3个输入参数,4个输入参数共5个版本这几个版本的原型如下:

1.没有输入参数返回值为void的委托.

Action委托 封装一个方法,该方法不采用参数并且不返回值。

可以使用此委托以参数形式传递一个执行某操作的方法,而不用显式声明一个自定义的委托来封装此方法。该封装的方法必须与此委托定义的方法签名相对应。这意味着该方法不得具有参数和返回值。例:

using System;using System.Windows.Forms;public class Name{  private string instanceName;  public ActionShowName;  public Show(){  If(ShowName != null)  ShowName();}  public Name(string name)  {   this.instanceName = name;  }  public void DisplayToConsole()  {   Console.WriteLine(this.instanceName);  }  public void DisplayToWindow()  {   MessageBox.Show(this.instanceName);  }}public class ActionStudy{  public static void Main()  {   Name testName = new Name("Koani");   testName.ShowName = () => testName.DisplayToWindow();   testName.Show();  }}