C# 委托讲解

首先,委托的使用场景:A的某些功能,只有在B需要触发时触发,委托就是用来做中间通讯的渠道。

假设:现在有个大佬A,A有个小弟B,B在受到羞辱时就会通过电话Delegate通知A自己被羞辱了,A在这时就会对B的电话作出反应,要么置之不理,要么带人报复,B通过电话通知A,需要电话号码,这里的号码,这里的号码可以视为delegate的参数。

    public class Boss //大佬A
    {
        CallBoss _bossPhont { get; set; } //A的电话
        Boy boys; //小弟B
        public Boss()
        {
           _bossPhont = new CallBoss(OnRevenge);
           boys = new Boy();
           boys._Phone = _bossPhont; //把自己号码告诉B
        }

        public int OnRevenge(int boynumbner) //接到B的求救电话
        {
            return 10; //报复,带了10个人
        }
    }
    public class Boy //小弟B
    {
        public CallBoss _Phone { get; set; }//B的电话
        public void Shamed() //被羞辱了
        {
            if (_Phone != null) //打电话,不知道号码,或者没带电话,那智能哑巴吃黄连
            {
                _Phone(111); //带了电话,找大佬A
            }
        }
    }

    public delegate int CallBoss(int bossnumber); //电话 bossnumber是A的号码

 

posted @ 2019-07-10 16:58  zebra_彬  阅读(472)  评论(0编辑  收藏  举报