1.委托任务:
参考:https://blog.csdn.net/fuemocheng/article/details/78062166
unity3d中自带的sendmessage方法是依赖反射机制(reflection),不安全的地方是在团队开发中,他可以调用别的类中的私有方法。
为了避免这种漏洞,可以使用c#中的委托机制来实现观察者模式。委托的定义:
delegate (void) NewDelegate(参数);
NewDelegate myDelegate; //实例
调用:
myDelegate = print;
myDelegate (1);方法组转化机制
可以定义不同的委托参数数量 ,面对同名函数时编辑器会根据参数数量自动选择函数。
委托对参数类型的协变性和对返回类型的逆变性
在为委托实例引用方法时,C#允许引用类型的协变性和逆变性。逆变性则是指方法获取的参数的类型可以是委托的参数的类型的基类,换言之逆变性描述的是委托的参数类型协变性是指方法的返回类型可以是从委托的返回类型派生的一个派生类,也就是说协变性描述的是委托返回类型。
多个委托
同一个委托可以记录多个函数,使用+= 和 -=来操作
实际上,+=是重写的Delegate中的Combine方法
-=是重写的Delegate中的Remove方法
unity3d知识点
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...