本帖最后由 u75379946 于 2016-3-10 19:46 编辑 概述:委托就像一个接口,具体方法实现这个接口,而我们只需要了解委托的定义就可以调用。1.委托:A.委托的作用: a.占位,让其他方法帮你做事-----解耦。 b.将方法(一个或绑定后的多个方法)作为方法的参数-----封装方法。B.委托的使用://将星爷电影国际化,实现双语orN语字幕 public class SubTitle { public void English() { Debug.Log("What difference does it make between people and salty fish if men don‘t have dreams?"); } public void Chinese() { Debug.Log("做人如果没有梦想跟咸鱼有什么分别?"); } public static void Bird() { Debug.Log("bb bbbbbbbbbb bb?"); } }//鸟说:我也有梦想 void BirdSay( LanguageDelegete la )
{
la ();
}
a.声明委托 public void delegete LanguageDelegete();//注意委托的签名与绑定的方法要一致,这里没有参数 b.创建Delegete对象 LanguageDelegete allLanguage = new LanguageDelegete(Subtitle.Bird); (另一种方法:LanguageDelegete allLanguage = Subtitle.Bird ;//代理静态方法) c.绑定多个方法(多路广播委托) BirdSay( allLanguage ); //将方法作为方法的参数使用
subTitle = new Subtitle();
allLanguage += subTitle . English;//代理实例方法
allLanguage += subTitle . Chinese;//封装方法
allLanguage -= Subtitle . Bird;
d.调用委托 allLanguage ();输出:注意顺序
file:///C:/Users/Anchor/AppData/Local/Temp/enhtmlclip/Image(10).pngC.为什么要用委托: 在C++中有函数指针,可以用来指向函数的引用,而C#中则没有,那怎么办呢?通过以上学习你会发现委托和指针十分相似,但是委托还具有函数指针所不具备的优点:在C++中我们经常遇到空指针等问题,而委托则不需要担心,即委托是面向对象,类型安全的,不用顾虑无效地址和地址越界等问题。下次我们继续为大家讲解事件机制。
PS:其实语言只是个工具,学习以上这些知识其实都是在打磨你的工具,这样我们才能做出更加出色的产品,如果你的工具现在还是个铁杵,那么跟着我一起把它磨成针吧,只要坚持,总有一天你会编织出属于自己的梦想!! 如果你对独立游戏,体验艺术,设计学,心理学感兴趣, 欢迎关注我的新公众微信:黑客画家 我的主页:anchorart9.com ,我的一些学习笔记,心得,行业咨询等内容将逐步更新上去。
下面是工程文件,自己有想法想要Test的可以直接下载:本帖隐藏的内容
链接.txt(48 Bytes, 下载次数: 136)
unity装备越界;unity观察者模式;unity装备栏越界;unity装备信息越界;
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。