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的号码