网上查了很多资料,发现讲委托的思路很乱!于是来整理一下。
1 比喻 我把委托看成是手枪上的弹匣,而需要委托的函数则是弹匣中的子弹。
要打几枪就在委托里装几发子弹,然后带上这把枪;
而不是去为每把枪装上一发子弹,然后背一大堆枪;
这里的枪就是主函数Gun(); 子弹可能是Fire(),Ice(),Gold()属性 弹匣就是委托容器delegate Magazine();
2 说明 要使用委托,先要声明委托,就是起草设计图。
接着是将委托这个弹匣照着设计图生产出来。 然后就是使用了。
1:准备工作:设计图
1.1: 声明需要 委托的函数:(子弹:火属性)
string Fire()//bullet子弹 { return “fire!”; }1.2: 声明一个 委托:Magazine 弹匣
delegate void Magazine();//声明一个新的委托类型2:实际使用:生产&出厂设置 2.1: 实例化委托容器: 按照Magazine设计图,生产弹匣magazine。 并填入一发子弹Fire();
delegate void Magazine(); Magazine magazine=Fire;//将Fire函数(火属性子弹)填入委托容器(弹匣)中2.2: 将委托作为参数传给主函数:将弹匣插到枪上,完成!
void Gun(Magazine magazine)//Gun=枪,magazine=弹匣 { int result=magazine();//发射火属性子弹 print(result); }