委托:

  把方法当作参数进行传递

public delegate void AddDelegate(string name);

public class Ad{

  //addDelegate就是委托的一个实例,把方法当作参数进行传递进去,逻辑分离,解除耦合

  public static void AddHander(string name,AddDelegate addDelegate){

    addDelegate(name);//调用该方法

  }

}

public static void Add(string name){ cw(name);}

调用:

    AddDelegate add = new AddDelegate(Ad.Add);//实例化委托

    Ad.AddHander("abc",add);//把委托当参数传递进去

    

事件:

public delegate void CatDelegate();//定义一个委托

//声明一个猫
public class Cat{

  public event CatDelegate  catHander;//声明一个事件

  public  void MiaoCat(){
  catHander.Invoke();//执行事件
  }

}

定义:委托就是一种类型,事件是委托的一种实例;

调用:Cat cat =new Cat();

    cat.catHander+=Run;//注册动作 Run()方法

    cat.catHander+=Miao;//注册动作 Miao()方法
    cat.MiaoCat();//执行调用事件方法,过程会依次执行Run、Miao这俩个方法

最新文章

  1. Unity UGUI知识点
  2. 安装pillow错误的解决方案
  3. test2
  4. IIS7.5 在已有的WEB网站上配置FTP发布
  5. 体验CoreCLR的stack unwinding特性在Linux/Mac上的初步实现
  6. POJ3422 Kaka's Matrix Travels
  7. MySQL的事件调度器
  8. ASP.NET MVC 及 Areas 简单控制路由
  9. 基于物联网操作系统HelloX的智慧家庭体系架构
  10. 那两年炼就的Android内功修养
  11. Java 9 揭秘全目录汇总
  12. sublime中安装package control总是失败
  13. MySQL视图,触发器,事务,存储过程,函数
  14. C# 一款属于自己的音乐播放器
  15. 洛谷P2764 最小路径覆盖问题
  16. python的错误类型和异常处理
  17. LeetCode OJ:Maximum Subarray(子数组最大值)
  18. MySQL插入中文时出现ERROR 1406 (22001): Data too long for column 'name' at row 1 (转)
  19. MySQL高可用之PXC安装部署(续)
  20. Android 菜单 之 上下文菜单ContextMenu

热门文章

  1. ASP.NET MVC从请求到响应发生了什么
  2. JAVA开发学习
  3. 实用的php清除html,php去除空格与换行,php清除空白行和换行,提取页面纯文本
  4. Python 如何删除列表中的空值
  5. JQuery中$.cookie()方法的使用[转]
  6. Cocos2d-x CCControlPotentiometer之圆形音量button及特效
  7. SQL update select结合语句详解及应用
  8. Spring Cloud构建微服务架构 - 服务网关
  9. 【转】Android 创建AVD各参数详解
  10. Spring4.2+SpringMVC+Mybatis3.4的集成(转-)