你的位置:首页 > 软件开发 > ASP.net > C#基础知识之委托(delegate、Action、Func、predicate)

C#基础知识之委托(delegate、Action、Func、predicate)

发布时间:2016-05-04 16:00:08
1. 什么是委托官方解释 委托是定义方法签名的类型,当实例化委托时,您可以将其实例化与任何具有兼容签名的方法想关联,可以通过委托实例调用方法。个人理解 委托通俗一点说就是把一件事情交给别人来帮助完成,而在C#中也可这样理解为委托就是动态 ...

1. 什么是委托

官方解释

      委托是定义方法签名的类型,当实例化委托时,您可以将其实例化与任何具有兼容签名的方法想关联,可以通过委托实例调用方法。

个人理解

      委托通俗一点说就是把一件事情交给别人来帮助完成,而在C#中也可这样理解为委托就是动态调用方法。委托就是一个类,它定义了一个类,使得可以将方法当做另一个方法参数传递,这种将方法动态的赋给参数的做法,可以避免我们在程序中使用大量的 If-Else语句,同时使得程序具有更好的可拓展性。

2. delegate

Delegate至少0个参数,至多32个参数,可以是无返回值,也可以指定有返回值。

委托(delegate)语法定义如下:

public delegate int CalculatorAdd(int x,int y);

定义一个委托基本上就是定义了一个新类,所以可以在类的任何地方定义委托,即可以在类的内部定义,也可以在任何类的外部定义,还可以在命名空间中把委托定义为最顶层对象。在委托定义上添加一般的访问修饰符:public、private、protected等。

完成一个委托的四步骤:

  1.   声明一个委托。
  2.   声明一个方法对应委托。
  3.   方法来实例化委托。
  4.   调用委托。

代码如下:

class Program  {    // 1. 定义一个委托    public delegate int CalculatorAdd(int x, int y);    // 2. 声明一个方法对应委托    public static int Add(int x, int y)    {      return x + y;    }    static void Main()    {      // 3. 方法实例化委托      CalculatorAdd AddCacu = new CalculatorAdd(Add);      // 4. 调用委托      int s = Add(8, 9);      Console.Write(s);      Console.ReadLine();    }  }

原标题:C#基础知识之委托(delegate、Action、Func、predicate)

关键词:C#

C#
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录