纳金网

标题: C# 委托学习笔记 [打印本页]

作者: 王者再临    时间: 2014-8-29 02:11
标题: C# 委托学习笔记

接触委托 代理 delegate很久啦。除了看API,Kotoba也给我讲了 。说到委托,拿下面这个小例子比较好。(14年6月26花花给我的练习)

实例:写一个方法A,定义个方法B(打印hello),和方法C(打印world),其中我只允许调用方法A。实现,1秒后打印出hello,3秒后打印出world。

先说一下回调的好处:

  在开发中我们有些代码呢,是很固定的,但又有一些东西很灵活很容易发生变动。先假设B和C都不是我们自己写的,而是其他人已经写好的其他方法,所以我们在无BUG的情况下,尽可能不去修改别人的方法,这个时候方法A是我们自己写的,我们有个需求那就是1秒后调用方法B,3秒后调用方法C,这就是现在的写法。 可能我需求增加之后呢,类似的代码会越来越多。比如4秒后执行方法D,但突然哪天你觉得方法A执行的太慢了,改了下时间,改为0.5秒,那对后面几个方法都要改,这样会很麻烦。然后我们稍加改动,这样修改方法B的时间也不会影响其他方法的执行。



  1. void Start()
  2. {
  3.    StartCoroutine(FunA(2,FunB));
  4.    StartCoroutine(FunA(3,FunC));           
  5. }

  6. IEnumerator FunA(float time ,DeleMethod  m)
  7. {
  8.       yield return new WaitForSeconds(time);
  9.       m();  
  10. }  

  11. void FunB()
  12. {
  13.    print("hello");
  14. }

  15. void FunC()
  16. {
  17.    print("world");
  18. }
复制代码

作者: hyui    时间: 2014-8-29 03:09
Thanks for sharing ! !@~!@!~@~
作者: cgjch8    时间: 2014-8-29 09:16
Thanks for sharing




欢迎光临 纳金网 (http://rs.narkii.com/club/) Powered by Discuz! X2.5