• 3.委托篇


    1.命名规范
    delegate 是关键词,【注:EventHandler是一个声明委托的微软C#的命名标准,我的习惯是标准就要第一时间说,也就这个命名习惯要第一时间养成】

    2.定义委托

    public(访问修饰符) delegate(委托) int(返回类型) CallEventHandler(int num1,int num2);

    3.实例化委托

    CallEventHandler call = new CallEventHandler(加入需要关联的方法);

    4.调用委托

    int result = call(5,3)

    5.意义:在于动态调用方法。委托是兑方法的引用,相当于方法的别名,也就是说委托与方法具有相同的行为。

    6.理解:

    在现实生活中,委托只是个命令,做事情是别人,而在程序世界里委托只是存储了各个方法的地址,而他自己也是什么也不做的。
    那我们就把刚才那个,小明委托小张去买车票的现实生活场景,怎么在程序世界里体现呢?

    代码

    Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->//小张类    

    public class MrZhang     {        

           //其实买车票的悲情人物是小张      

         public static void BuyTicket()       

         {         

            Console.WriteLine("NND,每次都让我去买票,鸡人呀!");        

        }  

        }

        //小明类    

      class MrMing     {        

        //声明一个委托,其实就是个“命令”        

          public delegate void BugTicketEventHandler();

            public static void Main(string[] args)         {         

        //这里就是具体阐述这个命令是干什么的,本例是MrZhang.BuyTicket“小张买车票”           

      BugTicketEventHandler myDelegate = new BugTicketEventHandler(MrZhang.BuyTicket);

         //这时候委托被附上了具体的方法         

        myDelegate();     

          Console.ReadKey();        

        }     }

    7.扩展

    既然给委托可以绑定一个方法,那么也应该有办法取消对方法的绑定,很容易想到,这个语法是“-=”;

    8.介绍

       委托(delegate)是一种引用类型,我们在处理他的时候要当作类来看待而不是方法,说白了委托就是对方法或者方法列表的引用,调用一个委托实例就好像是调用c++中的指针一样,他封装了对制定方法的引用,或者说委托起到的是桥梁的作用,实例后的委托对象会将给定的参数传递给他所回调的方法,并去执行方法。

  • 相关阅读:
    一个最简单的例子学习SAP Cloud for Customer HTML mashup
    SAP C4C Embedded Component最常见的故障原因分析
    使用SAP CRM Mock framework进行单元测试
    ABAP Debugging Script(调试器脚本)使用的一些实际例子
    SAP ABAP字符和字符串变量隐式转换的一些规则
    两种使用代码获得SAP CRM product sales status的办法
    扎根CNCF社区贡献五年是怎样的体验?听听华为云原生开源团队的负责人怎么说
    LiteOS调测利器:backtrace函数原理知多少
    微服务容错时,这些技术你要立刻想到
    Volcano 监控设计解读,一看就懂
  • 原文地址:https://www.cnblogs.com/cygnet/p/4166032.html
Copyright © 2020-2023  润新知