委托

        概念:

              c,c++,Pascal 和其他语言支持函数指针(地址)的概念,允许在运行时选择要调用的函数。java不提供任何具有函数指针功能的结构,但C#提供这种构造。通过使用                              Delegate类,委托实例可以封装属于可调用实体的方法。

  委托:C#的委托类似于c或C++ 中的函数指针。(函数的地址)

  委托: 用来封装带有特定签名和返回类型的方法。

 

 特点:

    委托类似于C++函数指针 ,但它是类型安全的。

    委托允许将方法作为参数进行传递

    委托可用于定义回调方法。

    委托可一个链接在一起,例如:可以对一个事件调用多个方法。

    方法不需要与委托签名精确匹配。

  定义和使用委托

    【访问修饰符】delegate 返回值类型 委托名称(参数列表);

  注意:委托只能接受相同返回值和相同参数列表的方法。

    private delegate  void MyDelegate(int n);

    private delegate double MySin(double m);

    上述代码声明了一个委托MyDelegate,该委托类型可以引用一个采用int作为参数并返回void的方法。

  实例化委托

    委托是一个引用数据类型,定义委托后,必须实例化才能使用。

      第一种方式:使用关键字new实例化委托

      第二种方式:直接将方法赋给委托。、

    实例化委托的过程就是将委托和方法关联的过程。委托不仅可以关联实例方法,也可以关联静态方法。委托可以关联多个方法,形成一个方法链:

      》+=:添加方法关联

      》-=:减少方法关联

      》委托还可以关联一个或多个其他委托。

  

  

posted @ 2017-12-28 11:14  Jason涛  阅读(155)  评论(0)    收藏  举报