简明指南:委托
网上查了很多资料,发现讲委托的思路很乱!于是来整理一下。
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);
}