美文网首页C#
面向对象(十七)-多播委托与作业

面向对象(十七)-多播委托与作业

作者: 元宇宙协会 | 来源:发表于2017-12-10 21:51 被阅读29次

1. 定义: 让一个委托指向多个方法

    1. 给委托增加一个方法 a+= function
    1. 给委托去掉一个方法 a-= function
    1. 多播委托的调用顺序,是按照添加方法的顺序来调用,先添加先调用。
    1. 如果委托的方法有返回值,那么只能得到调用的最后一个方法的结果。
static void Test1(){

  Console.WriteLine("Test1");

}

static void Test2(){

  Console.WriteLine("Test2");

}

static void Mian(string[] args){

  Action a = Test1;

  a += Test2; //表示增加一个委托引用

  a();

  // 输出 Test1 Test2

  a -= Test1; //去掉a对Test1的引用

  a -= Test2; //去掉a对Test2的引用

  // 如果一个委托没有指向任何方法,而去调用它,那么程序会crash。因此 最好在调用委托的方法的时候做一下判断

  if(a!=NULL){

    a();

  }
}

获取多播委托中所有委托的方法

Action a1 = Method1;

a1 += Method2;

Delegate[] delegates = a1.GetInvocationList();

foreach(delegate d in delegates){ // 遍历所有委托,然后单独调用

  d.DynamicInvoke(NULL);

}
  • 作业布置

1、要求使用委托 实现一个方法,给该方法传递两个浮点型参数,和一个运算方法,最终返回这两个数的运算结果 。

2、使用系统的List 中的sort方法 ,通过传递一个委托方法,对自定义的类(比如学生类)来按照自定义的方式(比如按照成绩、年龄、身高、体重之类的)来排序。

3、作业3

尝试给之前自定义的MyList类中, 添加一个sort方法,传递一个委托方法,可以自定义排序。 (也就是说实现作业2中系统的List中的那个sort方法)

4、作业4
回顾复习之前的知识点,包括上课的案例、代码。 之前的作业没做完的同学,尝试去完成。

作者:silence_k
链接:http://www.jianshu.com/p/3ab47e2bfdcb
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

相关文章

  • 面向对象(十七)-多播委托与作业

    1. 定义: 让一个委托指向多个方法 给委托增加一个方法 a+= function 给委托去掉一个方法 a-=...

  • Kotlin入门学习(二)

    新的篇章 面向对象 面向对象-封装 面向对象-继承 面向对象-抽象类和多态 接口 委托和代理 by关键字 委托...

  • 多播委托与匿名方法、Lambda表达式

    委托可以包含多个方法,这种委托叫做多播委托。 多播委托写法如下: public void Test1(){ Con...

  • 多播委托与委托小总结

    多播委托中的方法调用的顺序与增加方法时的顺序是一致的。 多播委托中,如果其中的某个方法执行发生了异常,后面的方法不...

  • 多播委托

    public static void text1(){Console.WriteLine("text1");}pu...

  • Delegate - 高级用法之多播委托

    iOS多播Delegate类——GCDMulticastDelegate用法小结 iOS 多播委托(GCDMult...

  • 30号c#总结

    30号 委托与事件,这一节主要分四个部分,委托的理解,接口的成员,多播委托,事件。 委托的定义语,[访问修饰符] ...

  • 24、多播委托

    1. 定义: 让一个委托指向多个方法 1. 给委托增加一个方法 a+= function 2. 给委托去掉一个方...

  • iOS 多播委托

    iOS回调有Delegate,NSNotificationCenter,block,kvo。但是项目中回调 有种情...

  • JavaScript面向对象

    JavaScript没有提供传统面向对象语言中的类式继承,而是通过原型委托的方式来实现对象与对象之间的继承。Jav...

网友评论

    本文标题:面向对象(十七)-多播委托与作业

    本文链接:https://www.haomeiwen.com/subject/hmfbixtx.html