zoukankan      html  css  js  c++  java
  • 讲解C++与C#里的 回调。

     C++ 有一段时间没用了。先引用一篇文章: http://www.cppblog.com/SpringSnow/archive/2008/12/07/68770.aspx

    typedef void (*PF)();

    void func()
    {
        printf(
    "func") ;
    }

    void caller( PF pf)
    {
      pf();
    }

    int _tmain(int argc, _TCHAR* argv[])
    {
        caller( func ) ;
        
        
    return 0;
    }

    至于 C# ,也差不到哪去。只是写法看起来更优雅一些。

    namespace ConApp
    {
        
    public delegate void func_delegate();

        
    public class Test
        {
            
    public event func_delegate FuncEvent;   //也可以不定义。  用 Event 定义是其中方式之一。
            public void CallerForEvent()
            {
                FuncEvent();
            }

            
    public void CallerForDeleagate(func_delegate CallBack)
            {
                CallBack();
            }
        }


        
    /// <summary>
        
    /// Program
        
    /// </summary>
        public class Program
        {
            
            
    public void TestCallBack()
            {
                Console.WriteLine(
    "Hello , In My Program !");
            }

            
    /// Main
            
    /// </summary>
            
    /// <param name="args">string[] args)</param>
            static void Main(string[] args)
            {
                
    // Event 方式调用。
                Test test = new Test();
                test.FuncEvent 
    += new func_delegate(
                    
    delegate()
                    {
                        Console.WriteLine(
    " New Function !") ;
                    }
                    );
                test.CallerForEvent() ;

                
    // 委托方式调用。
                test.CallerForDeleagate(new func_delegate(new Program().TestCallBack));
            }
        }
    }

    其目的,都是实现,自己调用了回调函数,具体要做什么,要由回调函数说了算。

    alarm   作者:NewSea     出处:http://newsea.cnblogs.com/    QQ,MSN:iamnewsea@hotmail.com

      如无特别标记说明,均为NewSea原创,版权私有,翻载必纠。欢迎交流,转载,但要在页面明显位置给出原文连接。谢谢。
  • 相关阅读:
    UI设计师需要熟记的45个快捷键Windows、Mac
    手把手教你制作好莱坞大片级场景——宇宙猫
    关于功能图标的绘制方法!
    设计师该如何把简历写好?
    PS合成的5个要点:场景、对比、氛围、模糊、纹理
    UI设计工资有多高?怎么快速拿高薪?
    19. Remove Nth Node From End of List
    18. 4Sum
    17. Letter Combinations of a Phone Number
    16. 3Sum Closest
  • 原文地址:https://www.cnblogs.com/newsea/p/1375223.html
Copyright © 2011-2022 走看看