码迷,mamicode.com
首页 > 其他好文 > 详细

委托和回调函数例子

时间:2016-10-01 14:49:41      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:

其实,回调函数就是把方法当做一个参数传入其它方法中,就算直接传递方法名,那宿主方法该用什么来接收这个方法名呢?(比较绕,其实我们知道,如果参数传入"zhangsan",在宿主方法中可以用string来接收它。传入3,可以用int来接收它)。聪明的您一定想到了,传入方法,就用委托来接收它

啥都不说了,例子是最好的老师!

public delegate void OutPutMsgHandler(string name);


/// <summary>
/// 入口类
/// </summary>
class DelegateClass
{
    static void Main(string[] args)
    {
        Console.WriteLine("程序运行开始……");
        //利用多播委托
        OutPutMsgHandler callbackClass = new OutPutMsgHandler (MethodClass.EnglishGreeting);
        callbackClass += MethodClass.ChineseGreeting;
        new CallBackMethod().DoOutputMessge("zhangsan", callbackClass);
        Console.WriteLine("程序运行结束……");

        Console.ReadLine();
    }
}

public class CallBackMethod
{
    /// <summary>
    /// 回调函数,把方法作为参数传入。
    /// </summary>
    /// <param name=" name "></param>
    /// <param name="callbackMethod"></param>
    public void DoOutputMessge(string name, OutPutMsgHandler callbackMethod)
    {
        callbackMethod(name);
    }
}


/// <summary>
/// 方法类,全部为静态方法,测试调用
/// </summary>
public class MethodClass
{
    public static void EnglishGreeting(string name)
    {
        Console.WriteLine(name + "Morning");
    }

    public static void ChineseGreeting(string name)
    {
        Console.WriteLine(name + "早上好");
    }
}

 

委托和回调函数例子

标签:

原文地址:http://www.cnblogs.com/hyouq/p/5925768.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!