C# 委託講解

首先,委託的使用場景:A的某些功能,只有在B須要觸發時觸發,委託就是用來作中間通信的渠道。spa

假設:如今有個大佬A,A有個小弟B,B在受到羞辱時就會經過電話Delegate通知A本身被羞辱了,A在這時就會對B的電話做出反應,要麼置之不理,要麼帶人報復,B經過電話通知A,須要電話號碼,這裏的號碼,這裏的號碼能夠視爲delegate的參數。code

    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的號碼
相關文章
相關標籤/搜索